summaryrefslogtreecommitdiffstats
path: root/www/firefox/files/patch-bug1359142
diff options
context:
space:
mode:
Diffstat (limited to 'www/firefox/files/patch-bug1359142')
-rw-r--r--www/firefox/files/patch-bug135914257
1 files changed, 57 insertions, 0 deletions
diff --git a/www/firefox/files/patch-bug1359142 b/www/firefox/files/patch-bug1359142
new file mode 100644
index 0000000..b7998c5
--- /dev/null
+++ b/www/firefox/files/patch-bug1359142
@@ -0,0 +1,57 @@
+Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs
+
+diff --git js/src/wasm/WasmSignalHandlers.cpp js/src/wasm/WasmSignalHandlers.cpp
+index 1ab76eeb4bd9..bcdff0487837 100644
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -108,7 +108,19 @@ class AutoSetHandlingSegFault
+ # define R12_sig(p) ((p)->sc_r12)
+ # define R13_sig(p) ((p)->sc_r13)
+ # define R14_sig(p) ((p)->sc_r14)
+-# define R15_sig(p) ((p)->sc_r15)
++# if defined(__arm__)
++# define R15_sig(p) ((p)->sc_pc)
++# else
++# define R15_sig(p) ((p)->sc_r15)
++# endif
++# if defined(__aarch64__)
++# define EPC_sig(p) ((p)->sc_elr)
++# define RFP_sig(p) ((p)->sc_x[29])
++# endif
++# if defined(__mips__)
++# define EPC_sig(p) ((p)->sc_pc)
++# define RFP_sig(p) ((p)->sc_regs[30])
++# endif
+ #elif defined(__linux__) || defined(SOLARIS)
+ # if defined(__linux__)
+ # define XMM_sig(p,i) ((p)->uc_mcontext.fpregs->_xmm[i])
+@@ -171,6 +183,14 @@ class AutoSetHandlingSegFault
+ # define R13_sig(p) ((p)->uc_mcontext.__gregs[_REG_R13])
+ # define R14_sig(p) ((p)->uc_mcontext.__gregs[_REG_R14])
+ # define R15_sig(p) ((p)->uc_mcontext.__gregs[_REG_R15])
++# if defined(__aarch64__)
++# define EPC_sig(p) ((p)->uc_mcontext.__gregs[_REG_PC])
++# define RFP_sig(p) ((p)->uc_mcontext.__gregs[_REG_X29])
++# endif
++# if defined(__mips__)
++# define EPC_sig(p) ((p)->uc_mcontext.__gregs[_REG_EPC])
++# define RFP_sig(p) ((p)->uc_mcontext.__gregs[_REG_S8])
++# endif
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ # if defined(__DragonFly__)
+ # define XMM_sig(p,i) (((union savefpu*)(p)->uc_mcontext.mc_fpregs)->sv_xmm.sv_xmm[i])
+@@ -200,6 +220,14 @@ class AutoSetHandlingSegFault
+ # else
+ # define R15_sig(p) ((p)->uc_mcontext.mc_r15)
+ # endif
++# if defined(__FreeBSD__) && defined(__aarch64__)
++# define EPC_sig(p) ((p)->uc_mcontext.mc_gpregs.gp_elr)
++# define RFP_sig(p) ((p)->uc_mcontext.mc_gpregs.gp_x[29])
++# endif
++# if defined(__FreeBSD__) && defined(__mips__)
++# define EPC_sig(p) ((p)->uc_mcontext.mc_pc)
++# define RFP_sig(p) ((p)->uc_mcontext.mc_regs[30])
++# endif
+ #elif defined(XP_DARWIN)
+ # define EIP_sig(p) ((p)->uc_mcontext->__ss.__eip)
+ # define EBP_sig(p) ((p)->uc_mcontext->__ss.__ebp)
OpenPOWER on IntegriCloud