mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 786294 - Don't use emit-at-uses for double constants on x64. r=dvander
This commit is contained in:
parent
a6f201cecc
commit
1d404045da
@ -39,9 +39,6 @@ LIRGeneratorARM::lowerConstantDouble(double d, MInstruction *mir)
|
||||
bool
|
||||
LIRGeneratorARM::visitConstant(MConstant *ins)
|
||||
{
|
||||
if (ins->canEmitAtUses() && ins->type() != MIRType_Double)
|
||||
return emitAtUses(ins);
|
||||
|
||||
if (ins->type() == MIRType_Double) {
|
||||
uint32 index;
|
||||
if (!lirGraph_.addConstantToPool(ins->value(), &index))
|
||||
@ -50,6 +47,10 @@ LIRGeneratorARM::visitConstant(MConstant *ins)
|
||||
return define(lir, ins);
|
||||
}
|
||||
|
||||
// Emit non-double constants at their uses.
|
||||
if (ins->canEmitAtUses())
|
||||
return emitAtUses(ins);
|
||||
|
||||
return LIRGeneratorShared::visitConstant(ins);
|
||||
}
|
||||
|
||||
|
@ -34,12 +34,13 @@ LIRGeneratorX64::lowerConstantDouble(double d, MInstruction *mir)
|
||||
bool
|
||||
LIRGeneratorX64::visitConstant(MConstant *ins)
|
||||
{
|
||||
if (ins->canEmitAtUses())
|
||||
return emitAtUses(ins);
|
||||
|
||||
if (ins->type() == MIRType_Double)
|
||||
return lowerConstantDouble(ins->value().toDouble(), ins);
|
||||
|
||||
// Emit non-double constants at their uses.
|
||||
if (ins->canEmitAtUses())
|
||||
return emitAtUses(ins);
|
||||
|
||||
return LIRGeneratorShared::visitConstant(ins);
|
||||
}
|
||||
|
||||
|
@ -40,9 +40,6 @@ LIRGeneratorX86::lowerConstantDouble(double d, MInstruction *mir)
|
||||
bool
|
||||
LIRGeneratorX86::visitConstant(MConstant *ins)
|
||||
{
|
||||
if (ins->canEmitAtUses() && ins->type() != MIRType_Double)
|
||||
return emitAtUses(ins);
|
||||
|
||||
if (ins->type() == MIRType_Double) {
|
||||
uint32 index;
|
||||
if (!lirGraph_.addConstantToPool(ins->value(), &index))
|
||||
@ -51,6 +48,10 @@ LIRGeneratorX86::visitConstant(MConstant *ins)
|
||||
return define(lir, ins);
|
||||
}
|
||||
|
||||
// Emit non-double constants at their uses.
|
||||
if (ins->canEmitAtUses())
|
||||
return emitAtUses(ins);
|
||||
|
||||
return LIRGeneratorShared::visitConstant(ins);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user