Simplified register names

This commit is contained in:
Eduard Urbach 2025-04-17 14:16:00 +02:00
parent f3f3ccc95f
commit 487c7fb3a6
Signed by: eduard
GPG key ID: 49226B848C78F6C8
33 changed files with 922 additions and 930 deletions

View file

@ -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)
}
}
}