Commit 457dfc0d authored by André Bargull's avatar André Bargull
Browse files

Bug 1686692 - Part 13: Remove LCompareStrictS. r=jandem

Depends on D101882

Differential Revision: https://phabricator.services.mozilla.com/D101883
parent 70e18cda
Loading
Loading
Loading
Loading
+1 −27
Original line number Diff line number Diff line
@@ -9320,7 +9320,7 @@ void CodeGenerator::visitTruncF(LTruncF* lir) {
void CodeGenerator::emitCompareS(LInstruction* lir, JSOp op, Register left,
                                 Register right, Register output) {
  MOZ_ASSERT(lir->isCompareS() || lir->isCompareStrictS());
  MOZ_ASSERT(lir->isCompareS());
  OutOfLineCode* ool = nullptr;
@@ -9357,32 +9357,6 @@ void CodeGenerator::emitCompareS(LInstruction* lir, JSOp op, Register left,
  masm.bind(ool->rejoin());
}
void CodeGenerator::visitCompareStrictS(LCompareStrictS* lir) {
  JSOp op = lir->mir()->jsop();
  MOZ_ASSERT(op == JSOp::StrictEq || op == JSOp::StrictNe);
  const ValueOperand leftV = ToValue(lir, LCompareStrictS::Lhs);
  Register right = ToRegister(lir->right());
  Register output = ToRegister(lir->output());
  Label string, done;
  masm.branchTestString(Assembler::Equal, leftV, &string);
  masm.move32(Imm32(op == JSOp::StrictNe), output);
  masm.jump(&done);
  masm.bind(&string);
#ifdef JS_NUNBOX32
  Register left = leftV.payloadReg();
#else
  Register left = ToTempUnboxRegister(lir->tempToUnbox());
#endif
  masm.unboxString(leftV, left);
  emitCompareS(lir, op, left, right, output);
  masm.bind(&done);
}
void CodeGenerator::visitCompareS(LCompareS* lir) {
  JSOp op = lir->mir()->jsop();
  Register left = ToRegister(lir->left());
+0 −20
Original line number Diff line number Diff line
@@ -1696,26 +1696,6 @@ class LCompareS : public LInstructionHelper<1, 2, 0> {
  MCompare* mir() { return mir_->toCompare(); }
};

// strict-equality between value and string.
class LCompareStrictS : public LInstructionHelper<1, BOX_PIECES + 1, 1> {
 public:
  LIR_HEADER(CompareStrictS)

  LCompareStrictS(const LBoxAllocation& lhs, const LAllocation& rhs,
                  const LDefinition& temp)
      : LInstructionHelper(classOpcode) {
    setBoxOperand(Lhs, lhs);
    setOperand(BOX_PIECES, rhs);
    setTemp(0, temp);
  }

  static const size_t Lhs = 0;

  const LAllocation* right() { return getOperand(BOX_PIECES); }
  const LDefinition* tempToUnbox() { return getTemp(0); }
  MCompare* mir() { return mir_->toCompare(); }
};

class LCompareBigInt : public LInstructionHelper<1, 2, 3> {
 public:
  LIR_HEADER(CompareBigInt)