q/src/build/core/storeVariableInRegister.go
2024-07-20 23:20:23 +02:00

21 lines
447 B
Go

package core
import (
"git.akyoto.dev/cli/q/src/build/expression"
"git.akyoto.dev/cli/q/src/build/scope"
)
func (f *Function) storeVariableInRegister(name string, value *expression.Expression, uses int) error {
reg := f.CurrentScope().MustFindFree(f.cpu.General)
f.CurrentScope().Reserve(reg)
err := f.ExpressionToRegister(value, reg)
f.AddVariable(&scope.Variable{
Name: name,
Register: reg,
Alive: uses,
})
return err
}