package core import ( "slices" "git.urbach.dev/cli/q/src/asm" "git.urbach.dev/cli/q/src/cpu" ) // AfterCall pops used register values back from the stack. func (f *Function) AfterCall(registers []cpu.Register) { for _, register := range slices.Backward(f.CPU.General) { if f.RegisterIsUsed(register) { f.Register(asm.POP, register) } } for _, register := range registers { f.FreeRegister(register) } }