authorgravatar for ryan@zinascii.comRyan Zezeski <ryan@zinascii.com> 2023-09-26 15:49:55-06:00
committergravatar for ryan@zinascii.comRyan Zezeski <ryan@zinascii.com> 2023-09-30 11:38:56-06:00
logf0724229d6e39931e0cd6aad1b060608a2879fc3
tree8ab4eab273848207206421040ca3da053294d156
parent937e8cb7051a3de537e11c2d52946f772f7449c3

solaris: add missing registers


2 files changed, 18 insertions(+), 1 deletions(-)

lib/std/c/solaris.zig+14
......@@ -1069,7 +1069,21 @@ pub const mcontext_t = extern struct {
10691069};
10701070
10711071pub const REG = struct {
1072 pub const R15 = 0;
1073 pub const R14 = 1;
1074 pub const R13 = 2;
1075 pub const R12 = 3;
1076 pub const R11 = 4;
1077 pub const R10 = 5;
1078 pub const R9 = 6;
1079 pub const R8 = 7;
1080 pub const RDI = 8;
1081 pub const RSI = 9;
10721082 pub const RBP = 10;
1083 pub const RBX = 11;
1084 pub const RDX = 12;
1085 pub const RCX = 13;
1086 pub const RAX = 14;
10731087 pub const RIP = 17;
10741088 pub const RSP = 20;
10751089};
lib/std/dwarf/abi.zig+4-1
......@@ -247,7 +247,10 @@ pub fn regBytes(
247247 14 => mem.asBytes(&ucontext_ptr.mcontext.gregs[os.REG.R14]),
248248 15 => mem.asBytes(&ucontext_ptr.mcontext.gregs[os.REG.R15]),
249249 16 => mem.asBytes(&ucontext_ptr.mcontext.gregs[os.REG.RIP]),
250 17...32 => |i| mem.asBytes(&ucontext_ptr.mcontext.fpregs.xmm[i - 17]),
250 17...32 => |i| if (builtin.os.tag == .solaris)
251 mem.asBytes(&ucontext_ptr.mcontext.fpregs.chip_state.xmm[i - 17])
252 else
253 mem.asBytes(&ucontext_ptr.mcontext.fpregs.xmm[i - 17]),
251254 else => error.InvalidRegister,
252255 },
253256 .freebsd => switch (reg_number) {