package core import ( "git.akyoto.dev/cli/q/src/asm" "git.akyoto.dev/cli/q/src/cpu" "git.akyoto.dev/cli/q/src/expression" "git.akyoto.dev/cli/q/src/types" ) // CallToRegister moves the result of a function call into the given register. func (f *Function) CallToRegister(node *expression.Expression, register cpu.Register) (types.Type, error) { types, err := f.CompileCall(node) if err != nil { return nil, err } if register != f.CPU.Output[0] { f.RegisterRegister(asm.MOVE, register, f.CPU.Output[0]) } if len(types) == 0 { return nil, nil } return types[0], err }