summaryrefslogtreecommitdiff
path: root/user/firefox-esr/ppc32-fix.patch
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-03 21:19:22 +0000
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-03 21:19:22 +0000
commit3be834a04f8d9a5ad4bd7138cb1efb55d8e062a0 (patch)
treedb059fb7e4e1451b5c458e898bff00560c424de6 /user/firefox-esr/ppc32-fix.patch
parent25e991cb02a1f11863592ff29d850326d09353dd (diff)
downloadpackages-3be834a04f8d9a5ad4bd7138cb1efb55d8e062a0.tar.gz
packages-3be834a04f8d9a5ad4bd7138cb1efb55d8e062a0.tar.bz2
packages-3be834a04f8d9a5ad4bd7138cb1efb55d8e062a0.tar.xz
packages-3be834a04f8d9a5ad4bd7138cb1efb55d8e062a0.zip
user/firefox-esr: maybe 32-bit builds supported
Diffstat (limited to 'user/firefox-esr/ppc32-fix.patch')
-rw-r--r--user/firefox-esr/ppc32-fix.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/user/firefox-esr/ppc32-fix.patch b/user/firefox-esr/ppc32-fix.patch
new file mode 100644
index 000000000..b4103c65f
--- /dev/null
+++ b/user/firefox-esr/ppc32-fix.patch
@@ -0,0 +1,43 @@
+--- firefox-68.1.0/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp
++++ firefox-68.1.0/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp
+@@ -45,11 +45,8 @@ invoke_copy_to_stack(uint32_t* d,
+ uint64_t tempu64;
+
+ for(uint32_t i = 0; i < paramCount; i++, s++) {
+- if(s->IsPtrData()) {
+- if(s->type == nsXPTType::T_JSVAL)
+- tempu32 = (uint32_t) &s->ptr;
+- else
+- tempu32 = (uint32_t) s->ptr;
++ if(s->IsIndirect()) {
++ tempu32 = (uint32_t) &s->val;
+ }
+ else {
+ switch(s->type) {
+@@ -70,7 +67,7 @@ invoke_copy_to_stack(uint32_t* d,
+ }
+ }
+
+- if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
++ if (!s->IsIndirect() && s->type == nsXPTType::T_DOUBLE) {
+ #ifndef __NO_FPRS__
+ if (fpr < FPR_COUNT)
+ fpregs[fpr++] = s->val.d;
+@@ -88,7 +85,7 @@ invoke_copy_to_stack(uint32_t* d,
+ d += 2;
+ }
+ }
+- else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
++ else if (!s->IsIndirect() && s->type == nsXPTType::T_FLOAT) {
+ #ifndef __NO_FPRS__
+ if (fpr < FPR_COUNT)
+ fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles
+@@ -99,7 +96,7 @@ invoke_copy_to_stack(uint32_t* d,
+ else
+ *((float*) d++) = s->val.f;
+ }
+- else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64
++ else if (!s->IsIndirect() && (s->type == nsXPTType::T_I64
+ || s->type == nsXPTType::T_U64)) {
+ if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6
+ if ((gpr + 1) < GPR_COUNT) {