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.
1234567891011121314151617181920212223242526272829303132package codegen
import ( "git.urbach.dev/cli/q/src/asm" "git.urbach.dev/cli/q/src/ssa")
func (f *Function) executeBytes(step *Step, instr *ssa.Bytes) { destination := step.Register
if destination == -1 { return }
f.Count.Data++ label := f.CreateLabel("data", f.Count.Data) f.Assembler.Data.SetImmutable(label, instr.Bytes) isSpilled := f.isSpilled(destination)
if isSpilled { destination = f.findTempRegister(step.Live) }
f.Assembler.Append(&asm.MoveLabel{ Destination: destination, Label: label, })
if isSpilled { f.storeSpill(step, destination) }}