--- a/deps/v8/src/libsampler/sampler.cc
+++ b/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
