diff -r ba0c97b018a6 -r 2a24a948b5cf mozilla-s390-context.patch --- a/mozilla-s390-context.patch Mon Jun 05 21:17:55 2023 +0200 +++ b/mozilla-s390-context.patch Sat Jul 29 14:34:45 2023 +0200 @@ -3,39 +3,24 @@ # Date 1558452408 -7200 # Tue May 21 17:26:48 2019 +0200 # Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4 -# Parent 6d6ebdace8a9877fe17c1bd14b80307c258c864f +# Parent 783ceb006fcdabe5ad23bd561362e721c7ed5f8c [mq]: mozilla-s390-context.patch diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp --- a/js/src/wasm/WasmSignalHandlers.cpp +++ b/js/src/wasm/WasmSignalHandlers.cpp -@@ -163,16 +163,20 @@ using mozilla::DebugOnly; - # define R03_sig(p) ((p)->uc_mcontext.__gregs[3]) - # define RFP_sig(p) ((p)->uc_mcontext.__gregs[22]) - # endif - # if defined(__sun__) && defined(__sparc__) - # define PC_sig(p) ((p)->uc_mcontext.gregs[REG_PC]) +@@ -174,6 +174,10 @@ using mozilla::DebugOnly; # define FP_sig(p) ((p)->uc_mcontext.gregs[REG_FPRS]) # define SP_sig(p) ((p)->uc_mcontext.gregs[REG_SP]) # endif -+# if defined(__linux__) && defined(__s390x__) -+# define GR_sig(p,x) ((p)->uc_mcontext.gregs[x]) -+# define PSWa_sig(p) ((p)->uc_mcontext.psw.addr) -+# endif ++# if defined(__linux__) && defined(__s390x__) ++# define GR_sig(p, x) ((p)->uc_mcontext.gregs[x]) ++# define PSWa_sig(p) ((p)->uc_mcontext.psw.addr) ++# endif # elif defined(__NetBSD__) # define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP]) # define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP]) - # define ESP_sig(p) ((p)->uc_mcontext.__gregs[_REG_ESP]) - # define RIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RIP]) - # define RSP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RSP]) - # define RBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RBP]) - # define R11_sig(p) ((p)->uc_mcontext.__gregs[_REG_R11]) -@@ -405,16 +409,20 @@ struct macos_aarch64_context { - # define PC_sig(p) R32_sig(p) - # define SP_sig(p) R01_sig(p) - # define FP_sig(p) R01_sig(p) - # elif defined(__loongarch__) - # define PC_sig(p) EPC_sig(p) +@@ -416,6 +420,10 @@ struct macos_aarch64_context { # define FP_sig(p) RFP_sig(p) # define SP_sig(p) R03_sig(p) # define LR_sig(p) RRA_sig(p) @@ -43,11 +28,6 @@ +# define PC_sig(p) PSWa_sig(p) +# define SP_sig(p) GR_sig(p, 15) +# define FP_sig(p) GR_sig(p, 11) - # endif - - static void SetContextPC(CONTEXT* context, uint8_t* pc) { - # ifdef PC_sig - *reinterpret_cast(&PC_sig(context)) = pc; - # else - MOZ_CRASH(); - # endif + # elif defined(__riscv) + # define PC_sig(p) RPC_sig(p) + # define FP_sig(p) RFP_sig(p)