diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-03 21:19:22 +0000 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-10-03 21:19:22 +0000 |
commit | 3be834a04f8d9a5ad4bd7138cb1efb55d8e062a0 (patch) | |
tree | db059fb7e4e1451b5c458e898bff00560c424de6 /user/firefox-esr/ppc32-fix.patch | |
parent | 25e991cb02a1f11863592ff29d850326d09353dd (diff) | |
download | packages-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.patch | 43 |
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) { |