rumpk/hal/arch/aarch64/constants.nim

18 lines
541 B
Nim

# MARKUS MAIWALD (ARCHITECT) | VOXIS FORGE (AI)
# RUMPK HAL // AARCH64 CONSTANTS
# ARM64 Context Frame
# 6 register pairs (x19-x30) * 16 bytes = 96 bytes
# 16-byte aligned per ARM64 ABI
const CONTEXT_SIZE* = 96
# Register Layout in switch.S frame:
# [sp + 0] = x19, x20
# [sp + 16] = x21, x22
# [sp + 32] = x23, x24
# [sp + 48] = x25, x26
# [sp + 64] = x27, x28
# [sp + 80] = x29 (FP), x30 (LR/Return Address)
const LR_OFFSET* = 11 # x30 is at index 11 (88 bytes / 8)
const FP_OFFSET* = 10 # x29 is at index 10 (80 bytes / 8)