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.
123456789101112131415161718192021222324252627282930313233343536package x86
import ( "git.urbach.dev/cli/q/src/cpu")
// PushNumber pushes a number onto the stack.func PushNumber(code []byte, number int32) []byte { length := cpu.SizeInt(number)
if length >= 2 { return append( code, 0x68, byte(number), byte(number>>8), byte(number>>16), byte(number>>24), ) }
return append(code, 0x6A, byte(number))}
// PushRegister pushes the value inside the register onto the stack.func PushRegister(code []byte, register cpu.Register) []byte { if register > 0b111 { code = append(code, REX(0, 0, 0, 1)) register &= 0b111 }
return append( code, 0x50+byte(register), )}