| // Copyright 2014 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| #define SIG_REGS(ctxt) (*((Sigcontext*)&((Ucontext*)(ctxt))->uc_mcontext)->regs) |
| |
| #define SIG_R0(info, ctxt) (SIG_REGS(ctxt).gpr[0]) |
| #define SIG_R1(info, ctxt) (SIG_REGS(ctxt).gpr[1]) |
| #define SIG_R2(info, ctxt) (SIG_REGS(ctxt).gpr[2]) |
| #define SIG_R3(info, ctxt) (SIG_REGS(ctxt).gpr[3]) |
| #define SIG_R4(info, ctxt) (SIG_REGS(ctxt).gpr[4]) |
| #define SIG_R5(info, ctxt) (SIG_REGS(ctxt).gpr[5]) |
| #define SIG_R6(info, ctxt) (SIG_REGS(ctxt).gpr[6]) |
| #define SIG_R7(info, ctxt) (SIG_REGS(ctxt).gpr[7]) |
| #define SIG_R8(info, ctxt) (SIG_REGS(ctxt).gpr[8]) |
| #define SIG_R9(info, ctxt) (SIG_REGS(ctxt).gpr[9]) |
| #define SIG_R10(info, ctxt) (SIG_REGS(ctxt).gpr[10]) |
| #define SIG_R11(info, ctxt) (SIG_REGS(ctxt).gpr[11]) |
| #define SIG_R12(info, ctxt) (SIG_REGS(ctxt).gpr[12]) |
| #define SIG_R13(info, ctxt) (SIG_REGS(ctxt).gpr[13]) |
| #define SIG_R14(info, ctxt) (SIG_REGS(ctxt).gpr[14]) |
| #define SIG_R15(info, ctxt) (SIG_REGS(ctxt).gpr[15]) |
| #define SIG_R16(info, ctxt) (SIG_REGS(ctxt).gpr[16]) |
| #define SIG_R17(info, ctxt) (SIG_REGS(ctxt).gpr[17]) |
| #define SIG_R18(info, ctxt) (SIG_REGS(ctxt).gpr[18]) |
| #define SIG_R19(info, ctxt) (SIG_REGS(ctxt).gpr[19]) |
| #define SIG_R20(info, ctxt) (SIG_REGS(ctxt).gpr[20]) |
| #define SIG_R21(info, ctxt) (SIG_REGS(ctxt).gpr[21]) |
| #define SIG_R22(info, ctxt) (SIG_REGS(ctxt).gpr[22]) |
| #define SIG_R23(info, ctxt) (SIG_REGS(ctxt).gpr[23]) |
| #define SIG_R24(info, ctxt) (SIG_REGS(ctxt).gpr[24]) |
| #define SIG_R25(info, ctxt) (SIG_REGS(ctxt).gpr[25]) |
| #define SIG_R26(info, ctxt) (SIG_REGS(ctxt).gpr[26]) |
| #define SIG_R27(info, ctxt) (SIG_REGS(ctxt).gpr[27]) |
| #define SIG_R28(info, ctxt) (SIG_REGS(ctxt).gpr[28]) |
| #define SIG_R29(info, ctxt) (SIG_REGS(ctxt).gpr[29]) |
| #define SIG_R30(info, ctxt) (SIG_REGS(ctxt).gpr[30]) |
| #define SIG_R31(info, ctxt) (SIG_REGS(ctxt).gpr[31]) |
| |
| #define SIG_SP(info, ctxt) (SIG_REGS(ctxt).gpr[1]) |
| #define SIG_PC(info, ctxt) (SIG_REGS(ctxt).nip) |
| #define SIG_TRAP(info, ctxt) (SIG_REGS(ctxt).trap) |
| #define SIG_CTR(info, ctxt) (SIG_REGS(ctxt).ctr) |
| #define SIG_LINK(info, ctxt) (SIG_REGS(ctxt).link) |
| #define SIG_XER(info, ctxt) (SIG_REGS(ctxt).xer) |
| #define SIG_CCR(info, ctxt) (SIG_REGS(ctxt).ccr) |
| |
| #define SIG_CODE0(info, ctxt) ((uintptr)(info)->si_code) |
| #define SIG_FAULT(info, ctxt) (SIG_REGS(ctxt).dar) |