* move libffi to base/ Category
[t2sde.git] / package / www / firefox / hotfix-ppc.patch
blob11e229f54f870b787d1abedca0ead08ab1bf4dd9
1 # --- T2-COPYRIGHT-BEGIN ---
2 # t2/package/*/firefox/hotfix-ppc.patch
3 # Copyright (C) 2020 - 2025 The T2 SDE Project
4 # SPDX-License-Identifier: GPL-2.0 or patched project license
5 # --- T2-COPYRIGHT-END ---
7 --- firefox-81.0.2/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp.vanilla 2020-10-16 17:40:11.138383612 +0200
8 +++ firefox-81.0.2/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp 2020-10-16 17:57:09.014378133 +0200
9 @@ -45,11 +45,11 @@
10 uint64_t tempu64;
12 for(uint32_t i = 0; i < paramCount; i++, s++) {
13 - if(s->IsPtrData()) {
14 + if(s->IsIndirect()) {
15 if(s->type == nsXPTType::T_JSVAL)
16 - tempu32 = (uint32_t) &s->ptr;
17 + tempu32 = (uint32_t) &s->val.p;
18 else
19 - tempu32 = (uint32_t) s->ptr;
20 + tempu32 = (uint32_t) &s->val.p;
22 else {
23 switch(s->type) {
24 @@ -70,7 +70,7 @@
28 - if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
29 + if (!s->IsIndirect() && s->type == nsXPTType::T_DOUBLE) {
30 #ifndef __NO_FPRS__
31 if (fpr < FPR_COUNT)
32 fpregs[fpr++] = s->val.d;
33 @@ -88,7 +88,7 @@
34 d += 2;
37 - else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
38 + else if (!s->IsIndirect() && s->type == nsXPTType::T_FLOAT) {
39 #ifndef __NO_FPRS__
40 if (fpr < FPR_COUNT)
41 fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles
42 @@ -99,7 +99,7 @@
43 else
44 *((float*) d++) = s->val.f;
46 - else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64
47 + else if (!s->IsIndirect() && (s->type == nsXPTType::T_I64
48 || s->type == nsXPTType::T_U64)) {
49 if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6
50 if ((gpr + 1) < GPR_COUNT) {