Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
123456789101112131415161718192021222324package codegen
import ( "slices"
"git.urbach.dev/cli/q/src/ssa")
// addPreservedRegisters creates a list of registers that need to be preserved.func (f *Function) addPreservedRegisters() { mustPreserve := f.CPU.Call.Preserved
for _, step := range f.Steps { register, isRegister := step.Value.(*ssa.Register)
if isRegister && step.Register == register.Register { continue }
if slices.Contains(mustPreserve, step.Register) { f.Preserved.Add(step.Register) } }}