From 7d81c952d57a76454c31b13b3ec8e21388f02171 Mon Sep 17 00:00:00 2001 From: Sebastien Marie Date: Wed, 17 Jan 2024 10:16:44 +0000 Subject: [PATCH] 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 --- lib/std/dwarf/abi.zig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/std/dwarf/abi.zig b/lib/std/dwarf/abi.zig index a5319bfa6e..7130341e8d 100644 --- a/lib/std/dwarf/abi.zig +++ b/lib/std/dwarf/abi.zig @@ -369,6 +369,14 @@ pub fn regBytes( else => error.InvalidRegister, }, + .openbsd => switch (reg_number) { + 0...30 => mem.asBytes(&ucontext_ptr.sc_x[reg_number]), + 31 => mem.asBytes(&ucontext_ptr.sc_sp), + 32 => mem.asBytes(&ucontext_ptr.sc_lr), + 33 => mem.asBytes(&ucontext_ptr.sc_elr), + 34 => mem.asBytes(&ucontext_ptr.sc_spsr), + else => error.InvalidRegister, + }, else => switch (reg_number) { 0...30 => mem.asBytes(&ucontext_ptr.mcontext.regs[reg_number]), 31 => mem.asBytes(&ucontext_ptr.mcontext.sp),