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:
André Bargull 2020-04-08 07:21:23 +00:00
Родитель ca97fca589
Коммит c18e39510e
5 изменённых файлов: 5 добавлений и 51 удалений

Просмотреть файл

@ -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: