20 lines
962 B
Diff
20 lines
962 B
Diff
--- deps/v8/src/libsampler/sampler.cc.orig
|
|
+++ deps/v8/src/libsampler/sampler.cc
|
|
@@ -423,10 +423,17 @@
|
|
state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.regs->link);
|
|
#else
|
|
// Some C libraries, notably Musl, define the regs member as a void pointer
|
|
+ #if !V8_TARGET_ARCH_32_BIT
|
|
state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[32]);
|
|
state->sp = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[1]);
|
|
state->fp = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[31]);
|
|
state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[36]);
|
|
+ #else
|
|
+ state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[32]);
|
|
+ state->sp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[1]);
|
|
+ state->fp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[31]);
|
|
+ state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[36]);
|
|
+ #endif
|
|
#endif
|
|
#elif V8_HOST_ARCH_S390
|
|
#if V8_TARGET_ARCH_32_BIT
|