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.
123456789101112131415161718192021222324252627282930313233package arm
import "git.urbach.dev/cli/q/src/cpu"
// Load loads from memory into a register with a register offset.func Load(destination cpu.Register, base cpu.Register, offset cpu.Register, scale Scale, length byte) uint32 { return 0b01<<22 | StoreRegister(destination, base, offset, scale, length)}
// LoadSigned loads from memory into a register with a register offset and sign-extends it.func LoadSigned(destination cpu.Register, base cpu.Register, offset cpu.Register, scale Scale, length byte) uint32 { return 0b10<<22 | StoreRegister(destination, base, offset, scale, length)}
// LoadFixedOffset loads from memory with a signed offset from -256 to 255 into a register.func LoadFixedOffset(destination cpu.Register, base cpu.Register, mode AddressMode, offset int, length byte) uint32 { return 0b01<<22 | StoreFixedOffsetRegister(destination, base, mode, offset, length)}
// LoadFixedOffsetSigned loads from memory with a signed offset from -256 to 255 into a register and sign-extends it.func LoadFixedOffsetSigned(destination cpu.Register, base cpu.Register, mode AddressMode, offset int, length byte) uint32 { return 0b10<<22 | StoreFixedOffsetRegister(destination, base, mode, offset, length)}
// LoadFixedOffsetScaled loads from memory with a scaled unsigned offset from 0 to 4095 into a register.func LoadFixedOffsetScaled(destination cpu.Register, base cpu.Register, mode AddressMode, offset uint, length byte) uint32 { return 0b01<<22 | StoreFixedOffsetRegisterScaled(destination, base, mode, offset, length)}
// LoadFixedOffsetScaledSigned loads from memory with a scaled unsigned offset from 0 to 4095 into a register and sign-extends it.func LoadFixedOffsetScaledSigned(destination cpu.Register, base cpu.Register, mode AddressMode, offset uint, length byte) uint32 { return 0b10<<22 | StoreFixedOffsetRegisterScaled(destination, base, mode, offset, length)}