You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add ABI checker for AArch64, x86_64 (SysV), PowerPC64, Armv8.1-M+MVE
Verify that each assembly kernel preserves the callee-saved registers
its platform calling convention requires:
- AArch64 (AAPCS64): x19-x28, x29/FP, lower 64 bits of d8-d15.
- x86_64 (System V): rbx, rbp, r12-r15. No SIMD register callee-saved.
- PowerPC64 (ELFv2): GPRs r14-r31, FPRs f14-f31, VRs v20-v31, CR2-CR4.
- Armv8.1-M (AAPCS32): r4-r11 plus MVE Q4-Q7 (= D8-D15).
A per-arch assembly call stub loads a random register state, calls the
kernel, and captures the result; a checker then confirms the callee-saved
set is intact. Pointer arguments are backed by correctly-sized buffers
whose layout comes from a per-kernel YAML block; scripts/autogen turns
that YAML into the per-kernel checks. A self-test of hand-written
corrupters confirms the checker actually fires before kernel verdicts
are trusted.
Run via `make run_abicheck` or `scripts/tests abicheck`. It needs no
library build, so `scripts/tests all` runs it by default.
See test/abicheck/README.md for details.
Signed-off-by: Hanno Becker <beckphan@amazon.co.uk>
0 commit comments