q/src/build/register/RegisterLabel.go
2024-07-23 22:14:23 +02:00

20 lines
426 B
Go

package register
import (
"git.akyoto.dev/cli/q/src/build/asm"
"git.akyoto.dev/cli/q/src/build/cpu"
)
func (f *Machine) RegisterLabel(mnemonic asm.Mnemonic, register cpu.Register, label string) {
if f.RegisterIsUsed(register) && isDestructive(mnemonic) {
f.SaveRegister(register)
}
f.Assembler.RegisterLabel(mnemonic, register, label)
if mnemonic == asm.MOVE {
f.UseRegister(register)
}
f.postInstruction()
}