--- a/js/src/asmjs/WasmIonCompile.cpp
+++ b/js/src/asmjs/WasmIonCompile.cpp
@@ -660,17 +660,17 @@ class FunctionCompiler
curBlock_->add(ins);
return ins;
}
MDefinition* select(MDefinition* trueExpr, MDefinition* falseExpr, MDefinition* condExpr)
{
if (inDeadCode())
return nullptr;
- auto* ins = MAsmSelect::New(alloc(), trueExpr, falseExpr, condExpr);
+ auto* ins = MWasmSelect::New(alloc(), trueExpr, falseExpr, condExpr);
curBlock_->add(ins);
return ins;
}
MDefinition* extendI32(MDefinition* op, bool isUnsigned)
{
if (inDeadCode())
return nullptr;
--- a/js/src/jit/MIR.h
+++ b/js/src/jit/MIR.h
@@ -14033,43 +14033,43 @@ class MWasmCall final
return true;
}
const ABIArg& instanceArg() const {
return instanceArg_;
}
};
-class MAsmSelect
+class MWasmSelect
: public MTernaryInstruction,
public NoTypePolicy::Data
{
- MAsmSelect(MDefinition* trueExpr, MDefinition* falseExpr, MDefinition *condExpr)
+ MWasmSelect(MDefinition* trueExpr, MDefinition* falseExpr, MDefinition *condExpr)
: MTernaryInstruction(trueExpr, falseExpr, condExpr)
{
MOZ_ASSERT(condExpr->type() == MIRType::Int32);
MOZ_ASSERT(trueExpr->type() == falseExpr->type());
setResultType(trueExpr->type());
setMovable();
}
public:
- INSTRUCTION_HEADER(AsmSelect)
+ INSTRUCTION_HEADER(WasmSelect)
TRIVIAL_NEW_WRAPPERS
NAMED_OPERANDS((0, trueExpr), (1, falseExpr), (2, condExpr))
AliasSet getAliasSet() const override {
return AliasSet::None();
}
bool congruentTo(const MDefinition* ins) const override {
return congruentIfOperandsEqual(ins);
}
- ALLOW_CLONE(MAsmSelect)
+ ALLOW_CLONE(MWasmSelect)
};
class MWasmReinterpret
: public MUnaryInstruction,
public NoTypePolicy::Data
{
MWasmReinterpret(MDefinition* val, MIRType toType)
: MUnaryInstruction(val)
--- a/js/src/jit/MOpcodes.h
+++ b/js/src/jit/MOpcodes.h
@@ -285,17 +285,17 @@ namespace jit {
_(AsmJSStoreHeap) \
_(WasmLoadGlobalVar) \
_(WasmStoreGlobalVar) \
_(AsmJSReturn) \
_(AsmJSParameter) \
_(AsmJSVoidReturn) \
_(AsmJSPassStackArg) \
_(WasmCall) \
- _(AsmSelect) \
+ _(WasmSelect) \
_(WasmReinterpret) \
_(Rotate) \
_(NewDerivedTypedObject) \
_(RecompileCheck) \
_(AsmJSCompareExchangeHeap) \
_(AsmJSAtomicExchangeHeap) \
_(AsmJSAtomicBinopHeap) \
_(UnknownValue) \
--- a/js/src/jit/arm/CodeGenerator-arm.cpp
+++ b/js/src/jit/arm/CodeGenerator-arm.cpp
@@ -2166,17 +2166,17 @@ CodeGeneratorARM::visitAtomicTypedArrayE
AtomicBinopToTypedArray(this, lir->mir()->operation(), arrayType, value, mem, flagTemp);
} else {
BaseIndex mem(elements, ToRegister(lir->index()), ScaleFromElemWidth(width));
AtomicBinopToTypedArray(this, lir->mir()->operation(), arrayType, value, mem, flagTemp);
}
}
void
-CodeGeneratorARM::visitAsmSelect(LAsmSelect* ins)
+CodeGeneratorARM::visitWasmSelect(LWasmSelect* ins)
{
MIRType mirType = ins->mir()->type();
Register cond = ToRegister(ins->condExpr());
masm.as_cmp(cond, Imm8(0));
if (mirType == MIRType::Int32) {
Register falseExpr = ToRegister(ins->falseExpr());
@@ -2191,17 +2191,17 @@ CodeGeneratorARM::visitAsmSelect(LAsmSel
FloatRegister falseExpr = ToFloatRegister(ins->falseExpr());
if (mirType == MIRType::Double)
masm.moveDouble(falseExpr, out, Assembler::Zero);
else if (mirType == MIRType::Float32)
masm.moveFloat32(falseExpr, out, Assembler::Zero);
else
- MOZ_CRASH("unhandled type in visitAsmSelect!");
+ MOZ_CRASH("unhandled type in visitWasmSelect!");
}
void
CodeGeneratorARM::visitWasmReinterpret(LWasmReinterpret* lir)
{
MOZ_ASSERT(gen->compilingAsmJS());
MWasmReinterpret* ins = lir->mir();
@@ -3628,17 +3628,17 @@ CodeGeneratorARM::visitAsmJSPassStackArg
Address dst(StackPointer, mir->spOffset());
if (IsConstant(ins->arg()))
masm.store64(Imm64(ToInt64(ins->arg())), dst);
else
masm.store64(ToRegister64(ins->arg()), dst);
}
void
-CodeGeneratorARM::visitAsmSelectI64(LAsmSelectI64* lir)
+CodeGeneratorARM::visitWasmSelectI64(LWasmSelectI64* lir)
{
Register cond = ToRegister(lir->condExpr());
const LInt64Allocation falseExpr = lir->falseExpr();
Register64 out = ToOutRegister64(lir);
MOZ_ASSERT(ToRegister64(lir->trueExpr()) == out, "true expr is reused for input");
masm.as_cmp(cond, Imm8(0));
--- a/js/src/jit/arm/CodeGenerator-arm.h
+++ b/js/src/jit/arm/CodeGenerator-arm.h
@@ -174,17 +174,17 @@ class CodeGeneratorARM : public CodeGene
virtual void visitMulI64(LMulI64* lir);
virtual void visitDivOrModI64(LDivOrModI64* lir);
virtual void visitUDivOrModI64(LUDivOrModI64* lir);
virtual void visitCompareI64(LCompareI64* lir);
virtual void visitCompareI64AndBranch(LCompareI64AndBranch* lir);
virtual void visitBitOpI64(LBitOpI64* lir);
virtual void visitRotateI64(LRotateI64* lir);
virtual void visitAsmJSPassStackArgI64(LAsmJSPassStackArgI64* lir);
- virtual void visitAsmSelectI64(LAsmSelectI64* lir);
+ virtual void visitWasmSelectI64(LWasmSelectI64* lir);
virtual void visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir);
virtual void visitWasmReinterpretToI64(LWasmReinterpretToI64* lir);
virtual void visitPopcntI64(LPopcntI64* ins);
virtual void visitClzI64(LClzI64* ins);
virtual void visitCtzI64(LCtzI64* ins);
virtual void visitNotI64(LNotI64* ins);
virtual void visitWasmTruncateToInt64(LWasmTruncateToInt64* ins);
virtual void visitInt64ToFloatingPointCall(LInt64ToFloatingPointCall* lir);
@@ -228,17 +228,17 @@ class CodeGeneratorARM : public CodeGene
void visitNegD(LNegD* lir);
void visitNegF(LNegF* lir);
void visitLoadTypedArrayElementStatic(LLoadTypedArrayElementStatic* ins);
void visitStoreTypedArrayElementStatic(LStoreTypedArrayElementStatic* ins);
void visitAtomicTypedArrayElementBinop(LAtomicTypedArrayElementBinop* lir);
void visitAtomicTypedArrayElementBinopForEffect(LAtomicTypedArrayElementBinopForEffect* lir);
void visitCompareExchangeTypedArrayElement(LCompareExchangeTypedArrayElement* lir);
void visitAtomicExchangeTypedArrayElement(LAtomicExchangeTypedArrayElement* lir);
- void visitAsmSelect(LAsmSelect* ins);
+ void visitWasmSelect(LWasmSelect* ins);
void visitWasmReinterpret(LWasmReinterpret* ins);
void emitWasmCall(LWasmCallBase* ins);
void visitWasmCall(LWasmCall* ins);
void visitWasmCallI64(LWasmCallI64* ins);
void visitWasmLoad(LWasmLoad* ins);
void visitWasmLoadI64(LWasmLoadI64* ins);
void visitWasmUnalignedLoad(LWasmUnalignedLoad* ins);
void visitWasmUnalignedLoadI64(LWasmUnalignedLoadI64* ins);
--- a/js/src/jit/arm/Lowering-arm.cpp
+++ b/js/src/jit/arm/Lowering-arm.cpp
@@ -509,34 +509,32 @@ LIRGeneratorARM::lowerUrshD(MUrsh* mir)
MOZ_ASSERT(lhs->type() == MIRType::Int32);
MOZ_ASSERT(rhs->type() == MIRType::Int32);
LUrshD* lir = new(alloc()) LUrshD(useRegister(lhs), useRegisterOrConstant(rhs), temp());
define(lir, mir);
}
void
-LIRGeneratorARM::visitAsmSelect(MAsmSelect* ins)
+LIRGeneratorARM::visitWasmSelect(MWasmSelect* ins)
{
if (ins->type() == MIRType::Int64) {
- auto* lir = new(alloc()) LAsmSelectI64(useInt64RegisterAtStart(ins->trueExpr()),
- useInt64(ins->falseExpr()),
- useRegister(ins->condExpr())
- );
+ auto* lir = new(alloc()) LWasmSelectI64(useInt64RegisterAtStart(ins->trueExpr()),
+ useInt64(ins->falseExpr()),
+ useRegister(ins->condExpr()));
- defineInt64ReuseInput(lir, ins, LAsmSelectI64::TrueExprIndex);
+ defineInt64ReuseInput(lir, ins, LWasmSelectI64::TrueExprIndex);
return;
}
- auto* lir = new(alloc()) LAsmSelect(useRegisterAtStart(ins->trueExpr()),
- useRegister(ins->falseExpr()),
- useRegister(ins->condExpr())
- );
+ auto* lir = new(alloc()) LWasmSelect(useRegisterAtStart(ins->trueExpr()),
+ useRegister(ins->falseExpr()),
+ useRegister(ins->condExpr()));
- defineReuseInput(lir, ins, LAsmSelect::TrueExprIndex);
+ defineReuseInput(lir, ins, LWasmSelect::TrueExprIndex);
}
void
LIRGeneratorARM::visitAsmJSNeg(MAsmJSNeg* ins)
{
if (ins->type() == MIRType::Int32) {
define(new(alloc()) LNegI(useRegisterAtStart(ins->input())), ins);
} else if (ins->type() == MIRType::Float32) {
--- a/js/src/jit/arm/Lowering-arm.h
+++ b/js/src/jit/arm/Lowering-arm.h
@@ -97,17 +97,17 @@ class LIRGeneratorARM : public LIRGenera
public:
void visitBox(MBox* box);
void visitUnbox(MUnbox* unbox);
void visitReturn(MReturn* ret);
void lowerPhi(MPhi* phi);
void visitGuardShape(MGuardShape* ins);
void visitGuardObjectGroup(MGuardObjectGroup* ins);
- void visitAsmSelect(MAsmSelect* ins);
+ void visitWasmSelect(MWasmSelect* ins);
void visitAsmJSUnsignedToDouble(MAsmJSUnsignedToDouble* ins);
void visitAsmJSUnsignedToFloat32(MAsmJSUnsignedToFloat32* ins);
void visitWasmLoad(MWasmLoad* ins);
void visitWasmStore(MWasmStore* ins);
void visitAsmJSLoadHeap(MAsmJSLoadHeap* ins);
void visitAsmJSStoreHeap(MAsmJSStoreHeap* ins);
void visitAsmJSCompareExchangeHeap(MAsmJSCompareExchangeHeap* ins);
void visitAsmJSAtomicExchangeHeap(MAsmJSAtomicExchangeHeap* ins);
--- a/js/src/jit/arm64/Lowering-arm64.cpp
+++ b/js/src/jit/arm64/Lowering-arm64.cpp
@@ -217,19 +217,19 @@ LIRGeneratorARM64::lowerUrshD(MUrsh* mir
void
LIRGeneratorARM64::visitAsmJSNeg(MAsmJSNeg* ins)
{
MOZ_CRASH("visitAsmJSNeg");
}
void
-LIRGeneratorARM64::visitAsmSelect(MAsmSelect* ins)
+LIRGeneratorARM64::visitWasmSelect(MWasmSelect* ins)
{
- MOZ_CRASH("visitAsmSelect");
+ MOZ_CRASH("visitWasmSelect");
}
void
LIRGeneratorARM64::lowerUDiv(MDiv* div)
{
MOZ_CRASH("lowerUDiv");
}
--- a/js/src/jit/arm64/Lowering-arm64.h
+++ b/js/src/jit/arm64/Lowering-arm64.h
@@ -84,17 +84,17 @@ class LIRGeneratorARM64 : public LIRGene
void lowerModI(MMod* mod);
void lowerDivI64(MDiv* div);
void lowerModI64(MMod* mod);
void lowerMulI(MMul* mul, MDefinition* lhs, MDefinition* rhs);
void lowerUDiv(MDiv* div);
void lowerUMod(MMod* mod);
void visitPowHalf(MPowHalf* ins);
void visitAsmJSNeg(MAsmJSNeg* ins);
- void visitAsmSelect(MAsmSelect* ins);
+ void visitWasmSelect(MWasmSelect* ins);
LTableSwitchV* newLTableSwitchV(MTableSwitch* ins);
LTableSwitch* newLTableSwitch(const LAllocation& in,
const LDefinition& inputCopy,
MTableSwitch* ins);
public:
void visitBox(MBox* box);
--- a/js/src/jit/mips-shared/CodeGenerator-mips-shared.cpp
+++ b/js/src/jit/mips-shared/CodeGenerator-mips-shared.cpp
@@ -2330,17 +2330,17 @@ CodeGeneratorMIPSShared::visitAsmJSPassS
Address dst(StackPointer, mir->spOffset());
if (IsConstant(ins->arg()))
masm.store64(Imm64(ToInt64(ins->arg())), dst);
else
masm.store64(ToRegister64(ins->arg()), dst);
}
void
-CodeGeneratorMIPSShared::visitAsmSelect(LAsmSelect* ins)
+CodeGeneratorMIPSShared::visitWasmSelect(LWasmSelect* ins)
{
MIRType mirType = ins->mir()->type();
Register cond = ToRegister(ins->condExpr());
const LAllocation* falseExpr = ins->falseExpr();
if (mirType == MIRType::Int32) {
Register out = ToRegister(ins->output());
@@ -2353,27 +2353,27 @@ CodeGeneratorMIPSShared::visitAsmSelect(
MOZ_ASSERT(ToFloatRegister(ins->trueExpr()) == out, "true expr input is reused for output");
if (falseExpr->isFloatReg()) {
if (mirType == MIRType::Float32)
masm.as_movz(Assembler::SingleFloat, out, ToFloatRegister(falseExpr), cond);
else if (mirType == MIRType::Double)
masm.as_movz(Assembler::DoubleFloat, out, ToFloatRegister(falseExpr), cond);
else
- MOZ_CRASH("unhandled type in visitAsmSelect!");
+ MOZ_CRASH("unhandled type in visitWasmSelect!");
} else {
Label done;
masm.ma_b(cond, cond, &done, Assembler::NonZero, ShortJump);
if (mirType == MIRType::Float32)
masm.loadFloat32(ToAddress(falseExpr), out);
else if (mirType == MIRType::Double)
masm.loadDouble(ToAddress(falseExpr), out);
else
- MOZ_CRASH("unhandled type in visitAsmSelect!");
+ MOZ_CRASH("unhandled type in visitWasmSelect!");
masm.bind(&done);
}
}
void
CodeGeneratorMIPSShared::visitWasmReinterpret(LWasmReinterpret* lir)
{
--- a/js/src/jit/mips-shared/CodeGenerator-mips-shared.h
+++ b/js/src/jit/mips-shared/CodeGenerator-mips-shared.h
@@ -226,17 +226,17 @@ class CodeGeneratorMIPSShared : public C
void visitAsmJSStoreHeap(LAsmJSStoreHeap* ins);
void visitAsmJSCompareExchangeHeap(LAsmJSCompareExchangeHeap* ins);
void visitAsmJSAtomicExchangeHeap(LAsmJSAtomicExchangeHeap* ins);
void visitAsmJSAtomicBinopHeap(LAsmJSAtomicBinopHeap* ins);
void visitAsmJSAtomicBinopHeapForEffect(LAsmJSAtomicBinopHeapForEffect* ins);
void visitAsmJSPassStackArg(LAsmJSPassStackArg* ins);
void visitAsmJSPassStackArgI64(LAsmJSPassStackArgI64* ins);
- void visitAsmSelect(LAsmSelect* ins);
+ void visitWasmSelect(LWasmSelect* ins);
void visitWasmReinterpret(LWasmReinterpret* ins);
void visitMemoryBarrier(LMemoryBarrier* ins);
void visitAtomicTypedArrayElementBinop(LAtomicTypedArrayElementBinop* lir);
void visitAtomicTypedArrayElementBinopForEffect(LAtomicTypedArrayElementBinopForEffect* lir);
void visitCompareExchangeTypedArrayElement(LCompareExchangeTypedArrayElement* lir);
void visitAtomicExchangeTypedArrayElement(LAtomicExchangeTypedArrayElement* lir);
--- a/js/src/jit/mips-shared/Lowering-mips-shared.cpp
+++ b/js/src/jit/mips-shared/Lowering-mips-shared.cpp
@@ -401,34 +401,32 @@ LIRGeneratorMIPSShared::visitWasmStore(M
auto* lir = new(alloc()) LWasmStore(baseAlloc, valueAlloc);
if (ins->access().offset())
lir->setTemp(0, tempCopy(base, 0));
add(lir, ins);
}
void
-LIRGeneratorMIPSShared::visitAsmSelect(MAsmSelect* ins)
+LIRGeneratorMIPSShared::visitWasmSelect(MWasmSelect* ins)
{
if (ins->type() == MIRType::Int64) {
- auto* lir = new(alloc()) LAsmSelectI64(useInt64RegisterAtStart(ins->trueExpr()),
- useInt64(ins->falseExpr()),
- useRegister(ins->condExpr())
- );
+ auto* lir = new(alloc()) LWasmSelectI64(useInt64RegisterAtStart(ins->trueExpr()),
+ useInt64(ins->falseExpr()),
+ useRegister(ins->condExpr()));
- defineInt64ReuseInput(lir, ins, LAsmSelectI64::TrueExprIndex);
+ defineInt64ReuseInput(lir, ins, LWasmSelectI64::TrueExprIndex);
return;
}
- auto* lir = new(alloc()) LAsmSelect(useRegisterAtStart(ins->trueExpr()),
- use(ins->falseExpr()),
- useRegister(ins->condExpr())
- );
+ auto* lir = new(alloc()) LWasmSelect(useRegisterAtStart(ins->trueExpr()),
+ use(ins->falseExpr()),
+ useRegister(ins->condExpr()));
- defineReuseInput(lir, ins, LAsmSelect::TrueExprIndex);
+ defineReuseInput(lir, ins, LWasmSelect::TrueExprIndex);
}
void
LIRGeneratorMIPSShared::lowerUDiv(MDiv* div)
{
MDefinition* lhs = div->getOperand(0);
MDefinition* rhs = div->getOperand(1);
--- a/js/src/jit/mips-shared/Lowering-mips-shared.h
+++ b/js/src/jit/mips-shared/Lowering-mips-shared.h
@@ -68,17 +68,17 @@ class LIRGeneratorMIPSShared : public LI
void lowerModI(MMod* mod);
void lowerMulI(MMul* mul, MDefinition* lhs, MDefinition* rhs);
void lowerUDiv(MDiv* div);
void lowerUMod(MMod* mod);
void visitPowHalf(MPowHalf* ins);
void visitAsmJSNeg(MAsmJSNeg* ins);
void visitWasmLoad(MWasmLoad* ins);
void visitWasmStore(MWasmStore* ins);
- void visitAsmSelect(MAsmSelect* ins);
+ void visitWasmSelect(MWasmSelect* ins);
LTableSwitch* newLTableSwitch(const LAllocation& in, const LDefinition& inputCopy,
MTableSwitch* ins);
LTableSwitchV* newLTableSwitchV(MTableSwitch* ins);
public:
void lowerPhi(MPhi* phi);
void visitGuardShape(MGuardShape* ins);
--- a/js/src/jit/mips32/CodeGenerator-mips32.cpp
+++ b/js/src/jit/mips32/CodeGenerator-mips32.cpp
@@ -640,17 +640,17 @@ CodeGeneratorMIPS::visitWasmStoreGlobalV
MOZ_ASSERT (mir->value()->type() == MIRType::Int64);
Register64 input = ToRegister64(ins->value());
masm.store32(input.low, Address(GlobalReg, addr + INT64LOW_OFFSET));
masm.store32(input.high, Address(GlobalReg, addr + INT64HIGH_OFFSET));
}
void
-CodeGeneratorMIPS::visitAsmSelectI64(LAsmSelectI64* lir)
+CodeGeneratorMIPS::visitWasmSelectI64(LWasmSelectI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
Register cond = ToRegister(lir->condExpr());
const LInt64Allocation trueExpr = lir->trueExpr();
const LInt64Allocation falseExpr = lir->falseExpr();
Register64 output = ToOutRegister64(lir);
--- a/js/src/jit/mips32/CodeGenerator-mips32.h
+++ b/js/src/jit/mips32/CodeGenerator-mips32.h
@@ -48,17 +48,17 @@ class CodeGeneratorMIPS : public CodeGen
void visitDivOrModI64(LDivOrModI64* lir);
void visitUDivOrModI64(LUDivOrModI64* lir);
void visitWasmLoadI64(LWasmLoadI64* ins);
void visitWasmUnalignedLoadI64(LWasmUnalignedLoadI64* lir);
void visitWasmStoreI64(LWasmStoreI64* ins);
void visitWasmUnalignedStoreI64(LWasmUnalignedStoreI64* ins);
void visitWasmLoadGlobalVarI64(LWasmLoadGlobalVarI64* ins);
void visitWasmStoreGlobalVarI64(LWasmStoreGlobalVarI64* ins);
- void visitAsmSelectI64(LAsmSelectI64* lir);
+ void visitWasmSelectI64(LWasmSelectI64* lir);
void visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir);
void visitWasmReinterpretToI64(LWasmReinterpretToI64* lir);
void visitExtendInt32ToInt64(LExtendInt32ToInt64* lir);
void visitWrapInt64ToInt32(LWrapInt64ToInt32* lir);
void visitClzI64(LClzI64* ins);
void visitCtzI64(LCtzI64* ins);
void visitNotI64(LNotI64* ins);
void visitWasmTruncateToInt64(LWasmTruncateToInt64* ins);
--- a/js/src/jit/mips64/CodeGenerator-mips64.cpp
+++ b/js/src/jit/mips64/CodeGenerator-mips64.cpp
@@ -554,17 +554,17 @@ CodeGeneratorMIPS64::visitWasmStoreGloba
{
const MWasmStoreGlobalVar* mir = ins->mir();
unsigned addr = mir->globalDataOffset() - AsmJSGlobalRegBias;
MOZ_ASSERT(mir->value()->type() == MIRType::Int64);
masm.store64(ToRegister64(ins->value()), Address(GlobalReg, addr));
}
void
-CodeGeneratorMIPS64::visitAsmSelectI64(LAsmSelectI64* lir)
+CodeGeneratorMIPS64::visitWasmSelectI64(LWasmSelectI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
Register cond = ToRegister(lir->condExpr());
const LInt64Allocation falseExpr = lir->falseExpr();
Register64 out = ToOutRegister64(lir);
MOZ_ASSERT(ToRegister64(lir->trueExpr()) == out, "true expr is reused for input");
--- a/js/src/jit/mips64/CodeGenerator-mips64.h
+++ b/js/src/jit/mips64/CodeGenerator-mips64.h
@@ -54,17 +54,17 @@ class CodeGeneratorMIPS64 : public CodeG
void visitDivOrModI64(LDivOrModI64* lir);
void visitUDivOrModI64(LUDivOrModI64* lir);
void visitWasmLoadI64(LWasmLoadI64* lir);
void visitWasmUnalignedLoadI64(LWasmUnalignedLoadI64* lir);
void visitWasmStoreI64(LWasmStoreI64* ins);
void visitWasmUnalignedStoreI64(LWasmUnalignedStoreI64* ins);
void visitWasmLoadGlobalVarI64(LWasmLoadGlobalVarI64* ins);
void visitWasmStoreGlobalVarI64(LWasmStoreGlobalVarI64* ins);
- void visitAsmSelectI64(LAsmSelectI64* ins);
+ void visitWasmSelectI64(LWasmSelectI64* ins);
void visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir);
void visitWasmReinterpretToI64(LWasmReinterpretToI64* lir);
void visitExtendInt32ToInt64(LExtendInt32ToInt64* lir);
void visitWrapInt64ToInt32(LWrapInt64ToInt32* lir);
void visitClzI64(LClzI64* lir);
void visitCtzI64(LCtzI64* lir);
void visitNotI64(LNotI64* lir);
void visitWasmTruncateToInt64(LWasmTruncateToInt64* lir);
--- a/js/src/jit/none/Lowering-none.h
+++ b/js/src/jit/none/Lowering-none.h
@@ -83,17 +83,17 @@ class LIRGeneratorNone : public LIRGener
void visitAsmJSStoreHeap(MAsmJSStoreHeap* ins) { MOZ_CRASH(); }
void visitStoreTypedArrayElementStatic(MStoreTypedArrayElementStatic* ins) { MOZ_CRASH(); }
void visitAtomicTypedArrayElementBinop(MAtomicTypedArrayElementBinop* ins) { MOZ_CRASH(); }
void visitCompareExchangeTypedArrayElement(MCompareExchangeTypedArrayElement* ins) { MOZ_CRASH(); }
void visitAtomicExchangeTypedArrayElement(MAtomicExchangeTypedArrayElement* ins) { MOZ_CRASH(); }
void visitAsmJSCompareExchangeHeap(MAsmJSCompareExchangeHeap* ins) { MOZ_CRASH(); }
void visitAsmJSAtomicExchangeHeap(MAsmJSAtomicExchangeHeap* ins) { MOZ_CRASH(); }
void visitAsmJSAtomicBinopHeap(MAsmJSAtomicBinopHeap* ins) { MOZ_CRASH(); }
- void visitAsmSelect(MAsmSelect*) { MOZ_CRASH(); }
+ void visitWasmSelect(MWasmSelect*) { MOZ_CRASH(); }
void visitWasmBoundsCheck(MWasmBoundsCheck* ins) { MOZ_CRASH(); }
void visitWasmLoad(MWasmLoad* ins) { MOZ_CRASH(); }
void visitWasmStore(MWasmStore* ins) { MOZ_CRASH(); }
LTableSwitch* newLTableSwitch(LAllocation, LDefinition, MTableSwitch*) { MOZ_CRASH(); }
LTableSwitchV* newLTableSwitchV(MTableSwitch*) { MOZ_CRASH(); }
void visitSimdSelect(MSimdSelect* ins) { MOZ_CRASH(); }
void visitSimdSplat(MSimdSplat* ins) { MOZ_CRASH(); }
--- a/js/src/jit/shared/LIR-shared.h
+++ b/js/src/jit/shared/LIR-shared.h
@@ -7828,63 +7828,65 @@ class LHasClass : public LInstructionHel
return getOperand(0);
}
MHasClass* mir() const {
return mir_->toHasClass();
}
};
template<size_t Defs, size_t Ops>
-class LAsmSelectBase : public LInstructionHelper<Defs, Ops, 0>
+class LWasmSelectBase : public LInstructionHelper<Defs, Ops, 0>
{
typedef LInstructionHelper<Defs, Ops, 0> Base;
public:
- MAsmSelect* mir() const {
- return Base::mir_->toAsmSelect();
- }
-};
-
-class LAsmSelect : public LAsmSelectBase<1, 3>
-{
- public:
- LIR_HEADER(AsmSelect);
+ MWasmSelect* mir() const {
+ return Base::mir_->toWasmSelect();
+ }
+};
+
+class LWasmSelect : public LWasmSelectBase<1, 3>
+{
+ public:
+ LIR_HEADER(WasmSelect);
static const size_t TrueExprIndex = 0;
static const size_t FalseExprIndex = 1;
static const size_t CondIndex = 2;
- LAsmSelect(const LAllocation& trueExpr, const LAllocation& falseExpr, const LAllocation& cond) {
+ LWasmSelect(const LAllocation& trueExpr, const LAllocation& falseExpr,
+ const LAllocation& cond)
+ {
setOperand(TrueExprIndex, trueExpr);
setOperand(FalseExprIndex, falseExpr);
setOperand(CondIndex, cond);
}
const LAllocation* trueExpr() {
return getOperand(TrueExprIndex);
}
const LAllocation* falseExpr() {
return getOperand(FalseExprIndex);
}
const LAllocation* condExpr() {
return getOperand(CondIndex);
}
};
-class LAsmSelectI64 : public LAsmSelectBase<INT64_PIECES, 2 * INT64_PIECES + 1>
-{
- public:
- LIR_HEADER(AsmSelectI64);
+class LWasmSelectI64 : public LWasmSelectBase<INT64_PIECES, 2 * INT64_PIECES + 1>
+{
+ public:
+ LIR_HEADER(WasmSelectI64);
static const size_t TrueExprIndex = 0;
static const size_t FalseExprIndex = INT64_PIECES;
static const size_t CondIndex = INT64_PIECES * 2;
- LAsmSelectI64(const LInt64Allocation& trueExpr, const LInt64Allocation& falseExpr,
- const LAllocation& cond)
+ LWasmSelectI64(const LInt64Allocation& trueExpr, const LInt64Allocation& falseExpr,
+ const LAllocation& cond)
{
setInt64Operand(TrueExprIndex, trueExpr);
setInt64Operand(FalseExprIndex, falseExpr);
setOperand(CondIndex, cond);
}
const LInt64Allocation trueExpr() {
return getInt64Operand(TrueExprIndex);
--- a/js/src/jit/shared/LOpcodes-shared.h
+++ b/js/src/jit/shared/LOpcodes-shared.h
@@ -384,18 +384,18 @@
_(GetDOMMemberT) \
_(SetDOMProperty) \
_(CallDOMNative) \
_(IsCallable) \
_(IsConstructor) \
_(IsObject) \
_(IsObjectAndBranch) \
_(HasClass) \
- _(AsmSelect) \
- _(AsmSelectI64) \
+ _(WasmSelect) \
+ _(WasmSelectI64) \
_(WasmBoundsCheck) \
_(WasmAddOffset) \
_(WasmLoad) \
_(WasmLoadI64) \
_(WasmStore) \
_(WasmStoreI64) \
_(WasmLoadGlobalVar) \
_(WasmLoadGlobalVarI64) \
--- a/js/src/jit/x64/CodeGenerator-x64.cpp
+++ b/js/src/jit/x64/CodeGenerator-x64.cpp
@@ -334,17 +334,17 @@ CodeGeneratorX64::visitUDivOrModI64(LUDi
// Zero extend the lhs into rdx to make (rdx:rax).
masm.xorl(rdx, rdx);
masm.udivq(rhs);
masm.bind(&done);
}
void
-CodeGeneratorX64::visitAsmSelectI64(LAsmSelectI64* lir)
+CodeGeneratorX64::visitWasmSelectI64(LWasmSelectI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
Register cond = ToRegister(lir->condExpr());
Operand falseExpr = ToOperandOrRegister64(lir->falseExpr());
Register64 out = ToOutRegister64(lir);
--- a/js/src/jit/x64/CodeGenerator-x64.h
+++ b/js/src/jit/x64/CodeGenerator-x64.h
@@ -60,17 +60,17 @@ class CodeGeneratorX64 : public CodeGene
void visitWasmLoad(LWasmLoad* ins);
void visitWasmLoadI64(LWasmLoadI64* ins);
void visitWasmStore(LWasmStore* ins);
void visitWasmStoreI64(LWasmStoreI64* ins);
void visitWasmLoadGlobalVar(LWasmLoadGlobalVar* ins);
void visitWasmStoreGlobalVar(LWasmStoreGlobalVar* ins);
void visitWasmLoadGlobalVarI64(LWasmLoadGlobalVarI64* ins);
void visitWasmStoreGlobalVarI64(LWasmStoreGlobalVarI64* ins);
- void visitAsmSelectI64(LAsmSelectI64* ins);
+ void visitWasmSelectI64(LWasmSelectI64* ins);
void visitWasmCall(LWasmCall* ins);
void visitWasmCallI64(LWasmCallI64* ins);
void visitAsmJSLoadHeap(LAsmJSLoadHeap* ins);
void visitAsmJSStoreHeap(LAsmJSStoreHeap* ins);
void visitAsmJSCompareExchangeHeap(LAsmJSCompareExchangeHeap* ins);
void visitAsmJSAtomicExchangeHeap(LAsmJSAtomicExchangeHeap* ins);
void visitAsmJSAtomicBinopHeap(LAsmJSAtomicBinopHeap* ins);
void visitAsmJSAtomicBinopHeapForEffect(LAsmJSAtomicBinopHeapForEffect* ins);
--- a/js/src/jit/x86-shared/CodeGenerator-x86-shared.cpp
+++ b/js/src/jit/x86-shared/CodeGenerator-x86-shared.cpp
@@ -319,17 +319,17 @@ CodeGeneratorX86Shared::visitAsmJSPassSt
Address dst(StackPointer, mir->spOffset());
if (IsConstant(ins->arg()))
masm.store64(Imm64(ToInt64(ins->arg())), dst);
else
masm.store64(ToRegister64(ins->arg()), dst);
}
void
-CodeGeneratorX86Shared::visitAsmSelect(LAsmSelect* ins)
+CodeGeneratorX86Shared::visitWasmSelect(LWasmSelect* ins)
{
MIRType mirType = ins->mir()->type();
Register cond = ToRegister(ins->condExpr());
Operand falseExpr = ToOperand(ins->falseExpr());
masm.test32(cond, cond);
@@ -352,17 +352,17 @@ CodeGeneratorX86Shared::visitAsmSelect(L
else
masm.loadFloat32(falseExpr, out);
} else if (mirType == MIRType::Double) {
if (falseExpr.kind() == Operand::FPREG)
masm.moveDouble(ToFloatRegister(ins->falseExpr()), out);
else
masm.loadDouble(falseExpr, out);
} else {
- MOZ_CRASH("unhandled type in visitAsmSelect!");
+ MOZ_CRASH("unhandled type in visitWasmSelect!");
}
masm.bind(&done);
return;
}
void
CodeGeneratorX86Shared::visitWasmReinterpret(LWasmReinterpret* lir)
--- a/js/src/jit/x86-shared/CodeGenerator-x86-shared.h
+++ b/js/src/jit/x86-shared/CodeGenerator-x86-shared.h
@@ -239,17 +239,17 @@ class CodeGeneratorX86Shared : public Co
virtual void visitGuardShape(LGuardShape* guard);
virtual void visitGuardObjectGroup(LGuardObjectGroup* guard);
virtual void visitGuardClass(LGuardClass* guard);
virtual void visitEffectiveAddress(LEffectiveAddress* ins);
virtual void visitUDivOrMod(LUDivOrMod* ins);
virtual void visitUDivOrModConstant(LUDivOrModConstant *ins);
virtual void visitAsmJSPassStackArg(LAsmJSPassStackArg* ins);
virtual void visitAsmJSPassStackArgI64(LAsmJSPassStackArgI64* ins);
- virtual void visitAsmSelect(LAsmSelect* ins);
+ virtual void visitWasmSelect(LWasmSelect* ins);
virtual void visitWasmReinterpret(LWasmReinterpret* lir);
virtual void visitMemoryBarrier(LMemoryBarrier* ins);
virtual void visitWasmAddOffset(LWasmAddOffset* lir);
virtual void visitWasmTruncateToInt32(LWasmTruncateToInt32* lir);
virtual void visitAtomicTypedArrayElementBinop(LAtomicTypedArrayElementBinop* lir);
virtual void visitAtomicTypedArrayElementBinopForEffect(LAtomicTypedArrayElementBinopForEffect* lir);
virtual void visitCompareExchangeTypedArrayElement(LCompareExchangeTypedArrayElement* lir);
virtual void visitAtomicExchangeTypedArrayElement(LAtomicExchangeTypedArrayElement* lir);
--- a/js/src/jit/x86-shared/Lowering-x86-shared.cpp
+++ b/js/src/jit/x86-shared/Lowering-x86-shared.cpp
@@ -283,34 +283,32 @@ LIRGeneratorX86Shared::lowerModI(MMod* m
useRegister(mod->rhs()),
tempFixed(eax));
if (mod->fallible())
assignSnapshot(lir, Bailout_DoubleOutput);
defineFixed(lir, mod, LAllocation(AnyRegister(edx)));
}
void
-LIRGeneratorX86Shared::visitAsmSelect(MAsmSelect* ins)
+LIRGeneratorX86Shared::visitWasmSelect(MWasmSelect* ins)
{
if (ins->type() == MIRType::Int64) {
- auto* lir = new(alloc()) LAsmSelectI64(useInt64RegisterAtStart(ins->trueExpr()),
- useInt64(ins->falseExpr()),
- useRegister(ins->condExpr())
- );
+ auto* lir = new(alloc()) LWasmSelectI64(useInt64RegisterAtStart(ins->trueExpr()),
+ useInt64(ins->falseExpr()),
+ useRegister(ins->condExpr()));
- defineInt64ReuseInput(lir, ins, LAsmSelectI64::TrueExprIndex);
+ defineInt64ReuseInput(lir, ins, LWasmSelectI64::TrueExprIndex);
return;
}
- auto* lir = new(alloc()) LAsmSelect(useRegisterAtStart(ins->trueExpr()),
- use(ins->falseExpr()),
- useRegister(ins->condExpr())
- );
+ auto* lir = new(alloc()) LWasmSelect(useRegisterAtStart(ins->trueExpr()),
+ use(ins->falseExpr()),
+ useRegister(ins->condExpr()));
- defineReuseInput(lir, ins, LAsmSelect::TrueExprIndex);
+ defineReuseInput(lir, ins, LWasmSelect::TrueExprIndex);
}
void
LIRGeneratorX86Shared::visitAsmJSNeg(MAsmJSNeg* ins)
{
switch (ins->type()) {
case MIRType::Int32:
defineReuseInput(new(alloc()) LNegI(useRegisterAtStart(ins->input())), ins, 0);
--- a/js/src/jit/x86-shared/Lowering-x86-shared.h
+++ b/js/src/jit/x86-shared/Lowering-x86-shared.h
@@ -42,17 +42,17 @@ class LIRGeneratorX86Shared : public LIR
void lowerForCompIx4(LSimdBinaryCompIx4* ins, MSimdBinaryComp* mir,
MDefinition* lhs, MDefinition* rhs);
void lowerForCompFx4(LSimdBinaryCompFx4* ins, MSimdBinaryComp* mir,
MDefinition* lhs, MDefinition* rhs);
void lowerForBitAndAndBranch(LBitAndAndBranch* baab, MInstruction* mir,
MDefinition* lhs, MDefinition* rhs);
void visitAsmJSNeg(MAsmJSNeg* ins);
void lowerWasmLoad(MWasmLoad* ins);
- void visitAsmSelect(MAsmSelect* ins);
+ void visitWasmSelect(MWasmSelect* ins);
void lowerMulI(MMul* mul, MDefinition* lhs, MDefinition* rhs);
void lowerDivI(MDiv* div);
void lowerModI(MMod* mod);
void lowerUDiv(MDiv* div);
void lowerUMod(MMod* mod);
void lowerUrshD(MUrsh* mir);
void lowerTruncateDToInt32(MTruncateToInt32* ins);
void lowerTruncateFToInt32(MTruncateToInt32* ins);
--- a/js/src/jit/x86/CodeGenerator-x86.cpp
+++ b/js/src/jit/x86/CodeGenerator-x86.cpp
@@ -1117,17 +1117,17 @@ CodeGeneratorX86::visitUDivOrModI64(LUDi
masm.callWithABI(wasm::SymbolicAddress::UDivI64);
// output in edx:eax, move to output register.
masm.movl(edx, output.high);
MOZ_ASSERT(eax == output.low);
}
void
-CodeGeneratorX86::visitAsmSelectI64(LAsmSelectI64* lir)
+CodeGeneratorX86::visitWasmSelectI64(LWasmSelectI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
Register cond = ToRegister(lir->condExpr());
Register64 falseExpr = ToRegister64(lir->falseExpr());
Register64 out = ToOutRegister64(lir);
MOZ_ASSERT(ToRegister64(lir->trueExpr()) == out, "true expr is reused for input");
--- a/js/src/jit/x86/CodeGenerator-x86.h
+++ b/js/src/jit/x86/CodeGenerator-x86.h
@@ -69,17 +69,17 @@ class CodeGeneratorX86 : public CodeGene
void visitOutOfLineTruncate(OutOfLineTruncate* ool);
void visitOutOfLineTruncateFloat32(OutOfLineTruncateFloat32* ool);
void visitCompareI64(LCompareI64* lir);
void visitCompareI64AndBranch(LCompareI64AndBranch* lir);
void visitDivOrModI64(LDivOrModI64* lir);
void visitUDivOrModI64(LUDivOrModI64* lir);
- void visitAsmSelectI64(LAsmSelectI64* lir);
+ void visitWasmSelectI64(LWasmSelectI64* lir);
void visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir);
void visitWasmReinterpretToI64(LWasmReinterpretToI64* lir);
void visitExtendInt32ToInt64(LExtendInt32ToInt64* lir);
void visitWrapInt64ToInt32(LWrapInt64ToInt32* lir);
void visitClzI64(LClzI64* lir);
void visitCtzI64(LCtzI64* lir);
void visitNotI64(LNotI64* lir);
void visitWasmTruncateToInt64(LWasmTruncateToInt64* lir);