aboutsummaryrefslogtreecommitdiff
path: root/devel/electron37/files/patch-v8_src_libsampler_sampler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'devel/electron37/files/patch-v8_src_libsampler_sampler.cc')
-rw-r--r--devel/electron37/files/patch-v8_src_libsampler_sampler.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/devel/electron37/files/patch-v8_src_libsampler_sampler.cc b/devel/electron37/files/patch-v8_src_libsampler_sampler.cc
new file mode 100644
index 000000000000..d59878cf2003
--- /dev/null
+++ b/devel/electron37/files/patch-v8_src_libsampler_sampler.cc
@@ -0,0 +1,19 @@
+--- v8/src/libsampler/sampler.cc.orig 2025-06-30 07:04:30 UTC
++++ v8/src/libsampler/sampler.cc
+@@ -527,6 +527,16 @@ void SignalHandler::FillRegisterState(void* context, R
+ state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_PC]);
+ state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_SP]);
+ state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_FP]);
++#elif V8_HOST_ARCH_ARM64
++#ifdef __CHERI_PURE_CAPABILITY__
++ state->pc = reinterpret_cast<void*>(mcontext.mc_capregs.cap_elr);
++ state->sp = reinterpret_cast<void*>(mcontext.mc_capregs.cap_sp);
++ state->fp = reinterpret_cast<void*>(mcontext.mc_capregs.cap_x[29]);
++#else // !__CHERI_PURE_CAPABILITY__
++ state->pc = reinterpret_cast<void*>(mcontext.mc_gpregs.gp_elr);
++ state->sp = reinterpret_cast<void*>(mcontext.mc_gpregs.gp_sp);
++ state->fp = reinterpret_cast<void*>(mcontext.mc_gpregs.gp_x[29]);
++#endif // __CHERI_PURE_CAPABILITY__
+ #endif // V8_HOST_ARCH_*
+ #elif V8_OS_NETBSD
+ #if V8_HOST_ARCH_IA32