blob: b4103c65f0141fcaf4bb02ce3898f8ca8d5270b3 (
plain) (
tree)
|
|
--- 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) {
|