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
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;
19 - tempu32 = (uint32_t) s->ptr;
20 + tempu32 = (uint32_t) &s->val.p;
28 - if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
29 + if (!s->IsIndirect() && s->type == nsXPTType::T_DOUBLE) {
32 fpregs[fpr++] = s->val.d;
37 - else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
38 + else if (!s->IsIndirect() && s->type == nsXPTType::T_FLOAT) {
41 fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles
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) {