|
|
|
@ -63,6 +63,10 @@ void* GetProgramCounter(void* vuc) { |
|
|
|
|
return reinterpret_cast<void*>(context->uc_mcontext.psw.addr & 0x7fffffff); |
|
|
|
|
#elif defined(__s390__) && defined(__s390x__) |
|
|
|
|
return reinterpret_cast<void*>(context->uc_mcontext.psw.addr); |
|
|
|
|
#elif defined(__sparc__) && !defined(__arch64__) |
|
|
|
|
return reinterpret_cast<void*>(context->uc_mcontext.gregs[19]); |
|
|
|
|
#elif defined(__sparc__) && defined(__arch64__) |
|
|
|
|
return reinterpret_cast<void*>(context->uc_mcontext.mc_gregs[19]); |
|
|
|
|
#elif defined(__x86_64__) |
|
|
|
|
if (16 < ABSL_ARRAYSIZE(context->uc_mcontext.gregs)) |
|
|
|
|
return reinterpret_cast<void*>(context->uc_mcontext.gregs[16]); |
|
|
|
|