mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Fix PPC bustage for bug 507089 (r=me)
--HG-- extra : convert_revision : 0a31a14aba7746483fe8ff6b8ab287e1784de846
This commit is contained in:
parent
db95288852
commit
02b8d2a422
@ -710,7 +710,8 @@ namespace nanojit
|
||||
uint32_t j = argc - i - 1;
|
||||
ArgType ty = argTypes[j];
|
||||
LInsp arg = ins->arg(j);
|
||||
if (ty == ARGTYPE_I || ty == ARGTYPE_U || ty == ARGTYPE_Q) {
|
||||
NanoAssert(ty != ARGTYPE_V);
|
||||
if (ty != ARGTYPE_F) {
|
||||
// GP arg
|
||||
if (r <= R10) {
|
||||
asm_regarg(ty, arg, r);
|
||||
@ -720,7 +721,7 @@ namespace nanojit
|
||||
// put arg on stack
|
||||
TODO(stack_int32);
|
||||
}
|
||||
} else if (ty == ARGTYPE_F) {
|
||||
} else {
|
||||
// double
|
||||
if (fr <= F13) {
|
||||
asm_regarg(ty, arg, fr);
|
||||
@ -735,8 +736,6 @@ namespace nanojit
|
||||
// put arg on stack
|
||||
TODO(stack_double);
|
||||
}
|
||||
} else {
|
||||
TODO(ARGTYPE_UNK);
|
||||
}
|
||||
}
|
||||
if (param_size > max_param_size)
|
||||
@ -746,7 +745,8 @@ namespace nanojit
|
||||
void Assembler::asm_regarg(ArgType ty, LInsp p, Register r)
|
||||
{
|
||||
NanoAssert(r != deprecated_UnknownReg);
|
||||
if (ty == ARGTYPE_I || ty == ARGTYPE_U || ty == ARGTYPE_Q)
|
||||
NanoAssert(ty != ARGTYPE_V);
|
||||
if (ty != ARGTYPE_F)
|
||||
{
|
||||
#ifdef NANOJIT_64BIT
|
||||
if (ty == ARGTYPE_I) {
|
||||
@ -785,7 +785,7 @@ namespace nanojit
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (ty == ARGTYPE_F) {
|
||||
else {
|
||||
if (p->isUsed()) {
|
||||
Register rp = p->deprecated_getReg();
|
||||
if (!deprecated_isKnownReg(rp) || !IsFpReg(rp)) {
|
||||
@ -804,9 +804,6 @@ namespace nanojit
|
||||
findSpecificRegFor(p, r);
|
||||
}
|
||||
}
|
||||
else {
|
||||
TODO(ARGTYPE_UNK);
|
||||
}
|
||||
}
|
||||
|
||||
void Assembler::asm_spill(Register rr, int d, bool /* pop */, bool quad) {
|
||||
@ -1032,7 +1029,7 @@ namespace nanojit
|
||||
Register r = ins->deprecated_getReg();
|
||||
if (deprecated_isKnownReg(r) && (rmask(r) & FpRegs)) {
|
||||
// FPR already assigned, fine, use it
|
||||
deprecated_freeRsrcOf(ins, false);
|
||||
deprecated_freeRsrcOf(ins);
|
||||
} else {
|
||||
// use a GPR register; its okay to copy doubles with GPR's
|
||||
// but *not* okay to copy non-doubles with FPR's
|
||||
|
Loading…
Reference in New Issue
Block a user