зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1620997 - Part 4: Remove no longer used non-number MPow specialisation. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D69764 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
ca97fca589
Коммит
c18e39510e
|
@ -7985,15 +7985,6 @@ void CodeGenerator::visitPowD(LPowD* ins) {
|
|||
MOZ_ASSERT(ToFloatRegister(ins->output()) == ReturnDoubleReg);
|
||||
}
|
||||
|
||||
void CodeGenerator::visitPowV(LPowV* ins) {
|
||||
pushArg(ToValue(ins, LPowV::PowerInput));
|
||||
pushArg(ToValue(ins, LPowV::ValueInput));
|
||||
|
||||
using Fn = bool (*)(JSContext*, MutableHandleValue, MutableHandleValue,
|
||||
MutableHandleValue);
|
||||
callVM<Fn, js::PowValues>(ins);
|
||||
}
|
||||
|
||||
void CodeGenerator::visitSignI(LSignI* ins) {
|
||||
Register input = ToRegister(ins->input());
|
||||
Register output = ToRegister(ins->output());
|
||||
|
|
|
@ -1527,22 +1527,12 @@ void LIRGenerator::visitHypot(MHypot* ins) {
|
|||
void LIRGenerator::visitPow(MPow* ins) {
|
||||
MDefinition* input = ins->input();
|
||||
MDefinition* power = ins->power();
|
||||
LInstruction* lir;
|
||||
|
||||
if (ins->specialization() == MIRType::None) {
|
||||
MOZ_ASSERT(input->type() == MIRType::Value);
|
||||
MOZ_ASSERT(power->type() == MIRType::Value);
|
||||
|
||||
lir = new (alloc()) LPowV(useBoxAtStart(input), useBoxAtStart(power));
|
||||
defineReturn(lir, ins);
|
||||
assignSafepoint(lir, ins);
|
||||
return;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(input->type() == MIRType::Double);
|
||||
MOZ_ASSERT(power->type() == MIRType::Int32 ||
|
||||
power->type() == MIRType::Double);
|
||||
|
||||
LInstruction* lir;
|
||||
if (power->type() == MIRType::Int32) {
|
||||
// Note: useRegisterAtStart here is safe, the temp is a GP register so
|
||||
// it will never get the same register.
|
||||
|
|
|
@ -5065,14 +5065,9 @@ class MHypot : public MVariadicInstruction, public AllDoublePolicy::Data {
|
|||
class MPow : public MBinaryInstruction, public PowPolicy::Data {
|
||||
MPow(MDefinition* input, MDefinition* power, MIRType powerType)
|
||||
: MBinaryInstruction(classOpcode, input, power) {
|
||||
MOZ_ASSERT(powerType == MIRType::Double || powerType == MIRType::Int32 ||
|
||||
powerType == MIRType::None);
|
||||
MOZ_ASSERT(powerType == MIRType::Double || powerType == MIRType::Int32);
|
||||
specialization_ = powerType;
|
||||
if (powerType == MIRType::None) {
|
||||
setResultType(MIRType::Value);
|
||||
} else {
|
||||
setResultType(MIRType::Double);
|
||||
}
|
||||
setResultType(MIRType::Double);
|
||||
setMovable();
|
||||
}
|
||||
|
||||
|
@ -5089,18 +5084,11 @@ class MPow : public MBinaryInstruction, public PowPolicy::Data {
|
|||
bool congruentTo(const MDefinition* ins) const override {
|
||||
return congruentIfOperandsEqual(ins);
|
||||
}
|
||||
AliasSet getAliasSet() const override {
|
||||
if (specialization_ == MIRType::None) {
|
||||
return AliasSet::Store(AliasSet::Any);
|
||||
}
|
||||
return AliasSet::None();
|
||||
}
|
||||
AliasSet getAliasSet() const override { return AliasSet::None(); }
|
||||
bool possiblyCalls() const override { return true; }
|
||||
MOZ_MUST_USE bool writeRecoverData(
|
||||
CompactBufferWriter& writer) const override;
|
||||
bool canRecoverOnBailout() const override {
|
||||
return specialization_ != MIRType::None;
|
||||
}
|
||||
bool canRecoverOnBailout() const override { return true; }
|
||||
|
||||
MDefinition* foldsTo(TempAllocator& alloc) override;
|
||||
|
||||
|
|
|
@ -213,7 +213,6 @@ namespace jit {
|
|||
_(OperatorInI, js::jit::OperatorInI) \
|
||||
_(OptimizeSpreadCall, js::OptimizeSpreadCall) \
|
||||
_(PopLexicalEnv, js::jit::PopLexicalEnv) \
|
||||
_(PowValues, js::PowValues) \
|
||||
_(ProcessCallSiteObjOperation, js::ProcessCallSiteObjOperation) \
|
||||
_(ProxyGetProperty, js::ProxyGetProperty) \
|
||||
_(ProxyGetPropertyByValue, js::ProxyGetPropertyByValue) \
|
||||
|
|
|
@ -2498,20 +2498,6 @@ class LPowD : public LCallInstructionHelper<1, 2, 1> {
|
|||
const LDefinition* temp() { return getTemp(0); }
|
||||
};
|
||||
|
||||
class LPowV : public LCallInstructionHelper<BOX_PIECES, 2 * BOX_PIECES, 0> {
|
||||
public:
|
||||
LIR_HEADER(PowV)
|
||||
|
||||
LPowV(const LBoxAllocation& value, const LBoxAllocation& power)
|
||||
: LCallInstructionHelper(classOpcode) {
|
||||
setBoxOperand(ValueInput, value);
|
||||
setBoxOperand(PowerInput, power);
|
||||
}
|
||||
|
||||
static const size_t ValueInput = 0;
|
||||
static const size_t PowerInput = BOX_PIECES;
|
||||
};
|
||||
|
||||
// Sign value of an integer.
|
||||
class LSignI : public LInstructionHelper<1, 1, 0> {
|
||||
public:
|
||||
|
|
Загрузка…
Ссылка в новой задаче