Simplified register names
This commit is contained in:
parent
f3f3ccc95f
commit
487c7fb3a6
33 changed files with 922 additions and 930 deletions
|
@ -241,29 +241,29 @@ func (c *x86Compiler) handleDivInstruction(instruction asm.Instruction) {
|
|||
case asm.TypeRegisterNumber:
|
||||
operands := c.assembler.Param.RegisterNumber[instruction.Index]
|
||||
|
||||
if operands.Register != x86.RAX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.RAX, operands.Register)
|
||||
if operands.Register != x86.R0 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.R0, operands.Register)
|
||||
}
|
||||
|
||||
c.code = x86.MoveRegisterNumber(c.code, x86.TMP, operands.Number)
|
||||
c.code = x86.ExtendRAXToRDX(c.code)
|
||||
c.code = x86.ExtendR0ToR2(c.code)
|
||||
c.code = x86.DivRegister(c.code, x86.TMP)
|
||||
|
||||
if operands.Register != x86.RAX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Register, x86.RAX)
|
||||
if operands.Register != x86.R0 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Register, x86.R0)
|
||||
}
|
||||
case asm.TypeRegisterRegister:
|
||||
operands := c.assembler.Param.RegisterRegister[instruction.Index]
|
||||
|
||||
if operands.Destination != x86.RAX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.RAX, operands.Destination)
|
||||
if operands.Destination != x86.R0 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.R0, operands.Destination)
|
||||
}
|
||||
|
||||
c.code = x86.ExtendRAXToRDX(c.code)
|
||||
c.code = x86.ExtendR0ToR2(c.code)
|
||||
c.code = x86.DivRegister(c.code, operands.Source)
|
||||
|
||||
if operands.Destination != x86.RAX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Destination, x86.RAX)
|
||||
if operands.Destination != x86.R0 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Destination, x86.R0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -273,29 +273,29 @@ func (c *x86Compiler) handleModuloInstruction(instruction asm.Instruction) {
|
|||
case asm.TypeRegisterNumber:
|
||||
operands := c.assembler.Param.RegisterNumber[instruction.Index]
|
||||
|
||||
if operands.Register != x86.RAX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.RAX, operands.Register)
|
||||
if operands.Register != x86.R0 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.R0, operands.Register)
|
||||
}
|
||||
|
||||
c.code = x86.MoveRegisterNumber(c.code, x86.TMP, operands.Number)
|
||||
c.code = x86.ExtendRAXToRDX(c.code)
|
||||
c.code = x86.ExtendR0ToR2(c.code)
|
||||
c.code = x86.DivRegister(c.code, x86.TMP)
|
||||
|
||||
if operands.Register != x86.RDX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Register, x86.RDX)
|
||||
if operands.Register != x86.R2 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Register, x86.R2)
|
||||
}
|
||||
case asm.TypeRegisterRegister:
|
||||
operands := c.assembler.Param.RegisterRegister[instruction.Index]
|
||||
|
||||
if operands.Destination != x86.RAX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.RAX, operands.Destination)
|
||||
if operands.Destination != x86.R0 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, x86.R0, operands.Destination)
|
||||
}
|
||||
|
||||
c.code = x86.ExtendRAXToRDX(c.code)
|
||||
c.code = x86.ExtendR0ToR2(c.code)
|
||||
c.code = x86.DivRegister(c.code, operands.Source)
|
||||
|
||||
if operands.Destination != x86.RDX {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Destination, x86.RDX)
|
||||
if operands.Destination != x86.R2 {
|
||||
c.code = x86.MoveRegisterRegister(c.code, operands.Destination, x86.R2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue