Improved division split

This commit is contained in:
Eduard Urbach 2024-07-28 18:12:42 +02:00
parent 4ded8260b3
commit 8d629dda72
Signed by: eduard
GPG key ID: 49226B848C78F6C8
11 changed files with 84 additions and 64 deletions

View file

@ -29,11 +29,14 @@ func (f *Function) CompileAssignDivision(node *ast.Assign) error {
}
dividend := right.Children[0]
name = dividend.Token.Text(f.File.Bytes)
dividendVariable := f.VariableByName(name)
dividendRegister, err := f.Evaluate(dividend)
if err != nil {
return err
}
divisor := right.Children[1]
err := f.Execute(right.Token, dividendVariable.Register, divisor)
err = f.Execute(right.Token, dividendRegister, divisor)
f.RegisterRegister(asm.MOVE, quotientVariable.Register, x64.RAX)
f.RegisterRegister(asm.MOVE, remainderVariable.Register, x64.RDX)
return err