Fixed incorrect division results
This commit is contained in:
parent
65b74046e1
commit
a75aad52f6
11 changed files with 150 additions and 94 deletions
|
@ -25,7 +25,10 @@ func (f *Function) ExecuteRegisterNumber(operation token.Token, register cpu.Reg
|
|||
f.RegisterNumber(asm.MUL, register, number)
|
||||
|
||||
case token.Div, token.DivAssign:
|
||||
f.SaveRegister(x86.RAX)
|
||||
if register != x86.RAX {
|
||||
f.SaveRegister(x86.RAX)
|
||||
}
|
||||
|
||||
f.SaveRegister(x86.RDX)
|
||||
tmp := f.NewRegister()
|
||||
f.RegisterNumber(asm.MOVE, tmp, number)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue