feat(verify): ABI checks on arm64, riscv64 and loong64
Assisted-by: GLM 5.3 Flash
This commit is contained in:
@@ -27,6 +27,16 @@ Unreleased changes on the `development` branch.
|
||||
architectures via hand-written assembly trampolines
|
||||
(`trampoline_{arm64,riscv64,loong64}.s`) that save the Go stack, switch
|
||||
to a prepared stack, and branch to the JIT function.
|
||||
- **ABI checks on all architectures.** `gasm verify -abi` and the ABI
|
||||
half of `-fuzz` now work on arm64, riscv64 and loong64 via
|
||||
per-architecture checked trampolines: sentinels planted in the
|
||||
registers the Go ABI fixes across calls (amd64 `BP`/`R14`, arm64
|
||||
`R29`/`R28`, riscv64 `X27`, loong64 `R22`) are verified on return, with
|
||||
the below-SP canary on every architecture. `gasm verify` now runs the
|
||||
JIT checks whenever the host matches the kernel's architecture, and
|
||||
takes the ground-truth-only path only on other hosts. The `ABIReport`
|
||||
fields are renamed to the architecture-neutral `FPClobbered` and
|
||||
`GClobbered`.
|
||||
- **Hardware watchpoints on all architectures.** arm64 uses DBGWVR/DBGWCR
|
||||
via `PTRACE_SETREGSET` with `NT_ARM_HW_BREAK`; riscv64 and loong64 use
|
||||
`PTRACE_POKEUSER` to access trigger/debug registers.
|
||||
|
||||
Reference in New Issue
Block a user