authorgravatar for semarie@kapouay.eu.orgSebastien Marie <semarie@kapouay.eu.org> 2024-01-17 10:16:44+00:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-01-18 15:45:42-08:00
log7d81c952d57a76454c31b13b3ec8e21388f02171
tree4340e839911dcdba9e3d60c361365936653b07da
parenta7dbc57a35ee4695883f540e1d3a9d00506cf7bc

openbsd: add proper support for aarch64

define openbsd specific elements in std/dwarf/abi.zig regBytes() work from Jasper Lievisse Adriaanse, with register values from sys/signal.h and https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#dwarf-register-names

1 files changed, 8 insertions(+), 0 deletions(-)

lib/std/dwarf/abi.zig+8
...@@ -369,6 +369,14 @@ pub fn regBytes(...@@ -369,6 +369,14 @@ pub fn regBytes(
369369
370 else => error.InvalidRegister,370 else => error.InvalidRegister,
371 },371 },
372 .openbsd => switch (reg_number) {
373 0...30 => mem.asBytes(&ucontext_ptr.sc_x[reg_number]),
374 31 => mem.asBytes(&ucontext_ptr.sc_sp),
375 32 => mem.asBytes(&ucontext_ptr.sc_lr),
376 33 => mem.asBytes(&ucontext_ptr.sc_elr),
377 34 => mem.asBytes(&ucontext_ptr.sc_spsr),
378 else => error.InvalidRegister,
379 },
372 else => switch (reg_number) {380 else => switch (reg_number) {
373 0...30 => mem.asBytes(&ucontext_ptr.mcontext.regs[reg_number]),381 0...30 => mem.asBytes(&ucontext_ptr.mcontext.regs[reg_number]),
374 31 => mem.asBytes(&ucontext_ptr.mcontext.sp),382 31 => mem.asBytes(&ucontext_ptr.mcontext.sp),