Moved register state to scopes
This commit is contained in:
parent
3bd5b20af3
commit
545c8dd4f6
22 changed files with 230 additions and 129 deletions
|
@ -34,14 +34,14 @@ func (f *Function) ExpressionToRegister(node *expression.Expression, register cp
|
|||
final := register
|
||||
|
||||
if f.UsesRegister(right, register) {
|
||||
register = f.cpu.MustFindFree(f.cpu.General)
|
||||
register = f.Scope().MustFindFree(f.cpu.General)
|
||||
|
||||
if config.Comments {
|
||||
f.Comment("temporary register %s", register)
|
||||
}
|
||||
}
|
||||
|
||||
f.cpu.Reserve(register)
|
||||
f.Scope().Reserve(register)
|
||||
err := f.ExpressionToRegister(left, register)
|
||||
|
||||
if err != nil {
|
||||
|
@ -52,7 +52,7 @@ func (f *Function) ExpressionToRegister(node *expression.Expression, register cp
|
|||
|
||||
if register != final {
|
||||
f.RegisterRegister(asm.MOVE, final, register)
|
||||
f.cpu.Free(register)
|
||||
f.Scope().Free(register)
|
||||
}
|
||||
|
||||
return err
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue