| @@ -2031,28 +2031,28 @@ static void GetPcSpBp(void *context, upt | | | @@ -2031,28 +2031,28 @@ static void GetPcSpBp(void *context, upt |
2031 | // pointer, but GCC always uses r31 when we need a frame pointer. | | 2031 | // pointer, but GCC always uses r31 when we need a frame pointer. |
2032 | *bp = ucontext->uc_mcontext.regs->gpr[PT_R31]; | | 2032 | *bp = ucontext->uc_mcontext.regs->gpr[PT_R31]; |
2033 | #elif defined(__sparc__) | | 2033 | #elif defined(__sparc__) |
2034 | # if defined(__arch64__) || defined(__sparcv9) | | 2034 | # if defined(__arch64__) || defined(__sparcv9) |
2035 | # define STACK_BIAS 2047 | | 2035 | # define STACK_BIAS 2047 |
2036 | # else | | 2036 | # else |
2037 | # define STACK_BIAS 0 | | 2037 | # define STACK_BIAS 0 |
2038 | # endif | | 2038 | # endif |
2039 | # if SANITIZER_SOLARIS | | 2039 | # if SANITIZER_SOLARIS |
2040 | ucontext_t *ucontext = (ucontext_t*)context; | | 2040 | ucontext_t *ucontext = (ucontext_t*)context; |
2041 | *pc = ucontext->uc_mcontext.gregs[REG_PC]; | | 2041 | *pc = ucontext->uc_mcontext.gregs[REG_PC]; |
2042 | *sp = ucontext->uc_mcontext.gregs[REG_O6] + STACK_BIAS; | | 2042 | *sp = ucontext->uc_mcontext.gregs[REG_O6] + STACK_BIAS; |
2043 | # elif SANITIZER_NETBSD | | 2043 | # elif SANITIZER_NETBSD |
2044 | *pc = ucontext->uc_mcontext.__gregs[REG_PC]; | | 2044 | *pc = ucontext->uc_mcontext.__gregs[_REG_PC]; |
2045 | *sp = ucontext->uc_mcontext.__gregs[REG_O6] + STACK_BIAS; | | 2045 | *sp = ucontext->uc_mcontext.__gregs[_REG_O6] + STACK_BIAS; |
2046 | # else | | 2046 | # else |
2047 | // Historical BSDism here. | | 2047 | // Historical BSDism here. |
2048 | struct sigcontext *scontext = (struct sigcontext *)context; | | 2048 | struct sigcontext *scontext = (struct sigcontext *)context; |
2049 | # if defined(__arch64__) | | 2049 | # if defined(__arch64__) |
2050 | *pc = scontext->sigc_regs.tpc; | | 2050 | *pc = scontext->sigc_regs.tpc; |
2051 | *sp = scontext->sigc_regs.u_regs[14] + STACK_BIAS; | | 2051 | *sp = scontext->sigc_regs.u_regs[14] + STACK_BIAS; |
2052 | # else | | 2052 | # else |
2053 | *pc = scontext->si_regs.pc; | | 2053 | *pc = scontext->si_regs.pc; |
2054 | *sp = scontext->si_regs.u_regs[14]; | | 2054 | *sp = scontext->si_regs.u_regs[14]; |
2055 | # endif | | 2055 | # endif |
2056 | # endif | | 2056 | # endif |
2057 | *bp = (uptr) ((uhwptr *) *sp)[14] + STACK_BIAS; | | 2057 | *bp = (uptr) ((uhwptr *) *sp)[14] + STACK_BIAS; |
2058 | #elif defined(__mips__) | | 2058 | #elif defined(__mips__) |