зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1426134 - Part 6: Remove no longer used framepointer-temp from LIonToWasmCallBase. r=jandem
This code is no longer needed. Depends on D146708 Differential Revision: https://phabricator.services.mozilla.com/D146709
This commit is contained in:
Родитель
e080c3cacc
Коммит
a84e82ef8e
|
@ -6541,20 +6541,16 @@ void LIRGenerator::visitIonToWasmCall(MIonToWasmCall* ins) {
|
|||
// - that's not aliasing an input register.
|
||||
LDefinition scratch = tempFixed(ABINonArgReg0);
|
||||
|
||||
// Also prevent register allocation from using wasm's FramePointer, in
|
||||
// non-profiling mode.
|
||||
LDefinition fp = LDefinition::BogusTemp();
|
||||
|
||||
// Note that since this is a LIR call instruction, regalloc will prevent
|
||||
// the use*AtStart below from reusing any of the temporaries.
|
||||
|
||||
LInstruction* lir;
|
||||
if (ins->type() == MIRType::Value) {
|
||||
lir = allocateVariadic<LIonToWasmCallV>(ins->numOperands(), scratch, fp);
|
||||
lir = allocateVariadic<LIonToWasmCallV>(ins->numOperands(), scratch);
|
||||
} else if (ins->type() == MIRType::Int64) {
|
||||
lir = allocateVariadic<LIonToWasmCallI64>(ins->numOperands(), scratch, fp);
|
||||
lir = allocateVariadic<LIonToWasmCallI64>(ins->numOperands(), scratch);
|
||||
} else {
|
||||
lir = allocateVariadic<LIonToWasmCall>(ins->numOperands(), scratch, fp);
|
||||
lir = allocateVariadic<LIonToWasmCall>(ins->numOperands(), scratch);
|
||||
}
|
||||
if (!lir) {
|
||||
abort(AbortReason::Alloc, "OOM: LIRGenerator::visitIonToWasmCall");
|
||||
|
|
|
@ -3609,16 +3609,15 @@ class LBigIntAsUintN32 : public LInstructionHelper<1, 1, 1 + INT64_PIECES> {
|
|||
};
|
||||
|
||||
template <size_t NumDefs>
|
||||
class LIonToWasmCallBase : public LVariadicInstruction<NumDefs, 2> {
|
||||
using Base = LVariadicInstruction<NumDefs, 2>;
|
||||
class LIonToWasmCallBase : public LVariadicInstruction<NumDefs, 1> {
|
||||
using Base = LVariadicInstruction<NumDefs, 1>;
|
||||
|
||||
public:
|
||||
explicit LIonToWasmCallBase(LNode::Opcode classOpcode, uint32_t numOperands,
|
||||
const LDefinition& temp, const LDefinition& fp)
|
||||
const LDefinition& temp)
|
||||
: Base(classOpcode, numOperands) {
|
||||
this->setIsCall();
|
||||
this->setTemp(0, temp);
|
||||
this->setTemp(1, fp);
|
||||
}
|
||||
MIonToWasmCall* mir() const { return this->mir_->toIonToWasmCall(); }
|
||||
const LDefinition* temp() { return this->getTemp(0); }
|
||||
|
@ -3627,25 +3626,22 @@ class LIonToWasmCallBase : public LVariadicInstruction<NumDefs, 2> {
|
|||
class LIonToWasmCall : public LIonToWasmCallBase<1> {
|
||||
public:
|
||||
LIR_HEADER(IonToWasmCall);
|
||||
LIonToWasmCall(uint32_t numOperands, const LDefinition& temp,
|
||||
const LDefinition& fp)
|
||||
: LIonToWasmCallBase<1>(classOpcode, numOperands, temp, fp) {}
|
||||
LIonToWasmCall(uint32_t numOperands, const LDefinition& temp)
|
||||
: LIonToWasmCallBase<1>(classOpcode, numOperands, temp) {}
|
||||
};
|
||||
|
||||
class LIonToWasmCallV : public LIonToWasmCallBase<BOX_PIECES> {
|
||||
public:
|
||||
LIR_HEADER(IonToWasmCallV);
|
||||
LIonToWasmCallV(uint32_t numOperands, const LDefinition& temp,
|
||||
const LDefinition& fp)
|
||||
: LIonToWasmCallBase<BOX_PIECES>(classOpcode, numOperands, temp, fp) {}
|
||||
LIonToWasmCallV(uint32_t numOperands, const LDefinition& temp)
|
||||
: LIonToWasmCallBase<BOX_PIECES>(classOpcode, numOperands, temp) {}
|
||||
};
|
||||
|
||||
class LIonToWasmCallI64 : public LIonToWasmCallBase<INT64_PIECES> {
|
||||
public:
|
||||
LIR_HEADER(IonToWasmCallI64);
|
||||
LIonToWasmCallI64(uint32_t numOperands, const LDefinition& temp,
|
||||
const LDefinition& fp)
|
||||
: LIonToWasmCallBase<INT64_PIECES>(classOpcode, numOperands, temp, fp) {}
|
||||
LIonToWasmCallI64(uint32_t numOperands, const LDefinition& temp)
|
||||
: LIonToWasmCallBase<INT64_PIECES>(classOpcode, numOperands, temp) {}
|
||||
};
|
||||
// Wasm SIMD.
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче