--- a/js/src/asmjs/WasmIonCompile.cpp
+++ b/js/src/asmjs/WasmIonCompile.cpp
@@ -2238,17 +2238,17 @@ EmitConvertI64ToFloatingPoint(FunctionCo
static bool
EmitReinterpret(FunctionCompiler& f, ValType resultType, ValType operandType, MIRType mirType)
{
MDefinition* input;
if (!f.iter().readConversion(operandType, resultType, &input))
return false;
- f.iter().setResult(f.unary<MAsmReinterpret>(input, mirType));
+ f.iter().setResult(f.unary<MWasmReinterpret>(input, mirType));
return true;
}
static bool
EmitAdd(FunctionCompiler& f, ValType type, MIRType mirType)
{
MDefinition* lhs;
MDefinition* rhs;
--- a/js/src/jit/Lowering.cpp
+++ b/js/src/jit/Lowering.cpp
@@ -2541,24 +2541,24 @@ LIRGenerator::visitInterruptCheck(MInter
void
LIRGenerator::visitWasmTrap(MWasmTrap* ins)
{
add(new(alloc()) LWasmTrap, ins);
}
void
-LIRGenerator::visitAsmReinterpret(MAsmReinterpret* ins)
+LIRGenerator::visitWasmReinterpret(MWasmReinterpret* ins)
{
if (ins->type() == MIRType::Int64)
- defineInt64(new(alloc()) LAsmReinterpretToI64(useRegisterAtStart(ins->input())), ins);
+ defineInt64(new(alloc()) LWasmReinterpretToI64(useRegisterAtStart(ins->input())), ins);
else if (ins->input()->type() == MIRType::Int64)
- define(new(alloc()) LAsmReinterpretFromI64(useInt64RegisterAtStart(ins->input())), ins);
+ define(new(alloc()) LWasmReinterpretFromI64(useInt64RegisterAtStart(ins->input())), ins);
else
- define(new(alloc()) LAsmReinterpret(useRegisterAtStart(ins->input())), ins);
+ define(new(alloc()) LWasmReinterpret(useRegisterAtStart(ins->input())), ins);
}
void
LIRGenerator::visitStoreSlot(MStoreSlot* ins)
{
LInstruction* lir;
switch (ins->value()->type()) {
--- a/js/src/jit/Lowering.h
+++ b/js/src/jit/Lowering.h
@@ -191,17 +191,17 @@ class LIRGenerator : public LIRGenerator
void visitConvertElementsToDoubles(MConvertElementsToDoubles* ins);
void visitMaybeToDoubleElement(MMaybeToDoubleElement* ins);
void visitMaybeCopyElementsForWrite(MMaybeCopyElementsForWrite* ins);
void visitLoadSlot(MLoadSlot* ins);
void visitLoadFixedSlotAndUnbox(MLoadFixedSlotAndUnbox* ins);
void visitFunctionEnvironment(MFunctionEnvironment* ins);
void visitInterruptCheck(MInterruptCheck* ins);
void visitWasmTrap(MWasmTrap* ins);
- void visitAsmReinterpret(MAsmReinterpret* ins);
+ void visitWasmReinterpret(MWasmReinterpret* ins);
void visitStoreSlot(MStoreSlot* ins);
void visitFilterTypeSet(MFilterTypeSet* ins);
void visitTypeBarrier(MTypeBarrier* ins);
void visitMonitorTypes(MMonitorTypes* ins);
void visitPostWriteBarrier(MPostWriteBarrier* ins);
void visitPostWriteElementBarrier(MPostWriteElementBarrier* ins);
void visitArrayLength(MArrayLength* ins);
void visitSetArrayLength(MSetArrayLength* ins);
--- a/js/src/jit/MIR.h
+++ b/js/src/jit/MIR.h
@@ -14062,50 +14062,50 @@ class MAsmSelect
bool congruentTo(const MDefinition* ins) const override {
return congruentIfOperandsEqual(ins);
}
ALLOW_CLONE(MAsmSelect)
};
-class MAsmReinterpret
+class MWasmReinterpret
: public MUnaryInstruction,
public NoTypePolicy::Data
{
- MAsmReinterpret(MDefinition* val, MIRType toType)
+ MWasmReinterpret(MDefinition* val, MIRType toType)
: MUnaryInstruction(val)
{
switch (val->type()) {
case MIRType::Int32: MOZ_ASSERT(toType == MIRType::Float32); break;
case MIRType::Float32: MOZ_ASSERT(toType == MIRType::Int32); break;
case MIRType::Double: MOZ_ASSERT(toType == MIRType::Int64); break;
case MIRType::Int64: MOZ_ASSERT(toType == MIRType::Double); break;
default: MOZ_CRASH("unexpected reinterpret conversion");
}
setMovable();
setResultType(toType);
}
public:
- INSTRUCTION_HEADER(AsmReinterpret)
-
- static MAsmReinterpret* NewAsmJS(TempAllocator& alloc, MDefinition* val, MIRType toType)
- {
- return new(alloc) MAsmReinterpret(val, toType);
- }
-
- AliasSet getAliasSet() const override {
- return AliasSet::None();
- }
- bool congruentTo(const MDefinition* ins) const override {
- return congruentIfOperandsEqual(ins);
- }
-
- ALLOW_CLONE(MAsmReinterpret)
+ INSTRUCTION_HEADER(WasmReinterpret)
+
+ static MWasmReinterpret* NewAsmJS(TempAllocator& alloc, MDefinition* val, MIRType toType)
+ {
+ return new(alloc) MWasmReinterpret(val, toType);
+ }
+
+ AliasSet getAliasSet() const override {
+ return AliasSet::None();
+ }
+ bool congruentTo(const MDefinition* ins) const override {
+ return congruentIfOperandsEqual(ins);
+ }
+
+ ALLOW_CLONE(MWasmReinterpret)
};
class MRotate
: public MBinaryInstruction,
public NoTypePolicy::Data
{
bool isLeftRotate_;
--- a/js/src/jit/MOpcodes.h
+++ b/js/src/jit/MOpcodes.h
@@ -286,32 +286,32 @@ namespace jit {
_(WasmLoadGlobalVar) \
_(WasmStoreGlobalVar) \
_(AsmJSReturn) \
_(AsmJSParameter) \
_(AsmJSVoidReturn) \
_(AsmJSPassStackArg) \
_(WasmCall) \
_(AsmSelect) \
- _(AsmReinterpret) \
+ _(WasmReinterpret) \
_(Rotate) \
_(NewDerivedTypedObject) \
_(RecompileCheck) \
_(AsmJSCompareExchangeHeap) \
_(AsmJSAtomicExchangeHeap) \
_(AsmJSAtomicBinopHeap) \
_(UnknownValue) \
_(LexicalCheck) \
_(ThrowRuntimeLexicalError) \
_(GlobalNameConflictsCheck) \
_(Debugger) \
_(NewTarget) \
_(ArrowNewTarget) \
_(CheckReturn) \
- _(CheckIsObj) \
+ _(CheckIsObj) \
_(CheckObjCoercible) \
_(DebugCheckSelfHosted)
// Forward declarations of MIR types.
#define FORWARD_DECLARE(op) class M##op;
MIR_OPCODE_LIST(FORWARD_DECLARE)
#undef FORWARD_DECLARE
--- a/js/src/jit/arm/CodeGenerator-arm.cpp
+++ b/js/src/jit/arm/CodeGenerator-arm.cpp
@@ -2195,20 +2195,20 @@ CodeGeneratorARM::visitAsmSelect(LAsmSel
masm.moveDouble(falseExpr, out, Assembler::Zero);
else if (mirType == MIRType::Float32)
masm.moveFloat32(falseExpr, out, Assembler::Zero);
else
MOZ_CRASH("unhandled type in visitAsmSelect!");
}
void
-CodeGeneratorARM::visitAsmReinterpret(LAsmReinterpret* lir)
+CodeGeneratorARM::visitWasmReinterpret(LWasmReinterpret* lir)
{
MOZ_ASSERT(gen->compilingAsmJS());
- MAsmReinterpret* ins = lir->mir();
+ MWasmReinterpret* ins = lir->mir();
MIRType to = ins->type();
DebugOnly<MIRType> from = ins->input()->type();
switch (to) {
case MIRType::Int32:
MOZ_ASSERT(from == MIRType::Float32);
masm.ma_vxfer(ToFloatRegister(lir->input()), ToRegister(lir->output()));
@@ -2216,17 +2216,17 @@ CodeGeneratorARM::visitAsmReinterpret(LA
case MIRType::Float32:
MOZ_ASSERT(from == MIRType::Int32);
masm.ma_vxfer(ToRegister(lir->input()), ToFloatRegister(lir->output()));
break;
case MIRType::Double:
case MIRType::Int64:
MOZ_CRASH("not handled by this LIR opcode");
default:
- MOZ_CRASH("unexpected AsmReinterpret");
+ MOZ_CRASH("unexpected WasmReinterpret");
}
}
void
CodeGeneratorARM::emitWasmCall(LWasmCallBase* ins)
{
MWasmCall* mir = ins->mir();
@@ -3648,28 +3648,28 @@ CodeGeneratorARM::visitAsmSelectI64(LAsm
} else {
ScratchRegisterScope scratch(masm);
masm.ma_ldr(ToAddress(falseExpr.low()), out.low, scratch, Offset, Assembler::Equal);
masm.ma_ldr(ToAddress(falseExpr.high()), out.high, scratch, Offset, Assembler::Equal);
}
}
void
-CodeGeneratorARM::visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir)
+CodeGeneratorARM::visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Double);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Int64);
Register64 input = ToRegister64(lir->getInt64Operand(0));
FloatRegister output = ToFloatRegister(lir->output());
masm.ma_vxfer(input.low, input.high, output);
}
void
-CodeGeneratorARM::visitAsmReinterpretToI64(LAsmReinterpretToI64* lir)
+CodeGeneratorARM::visitWasmReinterpretToI64(LWasmReinterpretToI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Double);
FloatRegister input = ToFloatRegister(lir->getOperand(0));
Register64 output = ToOutRegister64(lir);
masm.ma_vxfer(input, output.low, output.high);
}
--- a/js/src/jit/arm/CodeGenerator-arm.h
+++ b/js/src/jit/arm/CodeGenerator-arm.h
@@ -175,18 +175,18 @@ class CodeGeneratorARM : public CodeGene
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 visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir);
- virtual void visitAsmReinterpretToI64(LAsmReinterpretToI64* 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);
virtual void visitTestI64AndBranch(LTestI64AndBranch* lir);
@@ -229,17 +229,17 @@ class CodeGeneratorARM : public CodeGene
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 visitAsmReinterpret(LAsmReinterpret* 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);
void visitWasmAddOffset(LWasmAddOffset* ins);
--- a/js/src/jit/mips-shared/CodeGenerator-mips-shared.cpp
+++ b/js/src/jit/mips-shared/CodeGenerator-mips-shared.cpp
@@ -2370,20 +2370,20 @@ CodeGeneratorMIPSShared::visitAsmSelect(
else
MOZ_CRASH("unhandled type in visitAsmSelect!");
masm.bind(&done);
}
}
void
-CodeGeneratorMIPSShared::visitAsmReinterpret(LAsmReinterpret* lir)
+CodeGeneratorMIPSShared::visitWasmReinterpret(LWasmReinterpret* lir)
{
MOZ_ASSERT(gen->compilingAsmJS());
- MAsmReinterpret* ins = lir->mir();
+ MWasmReinterpret* ins = lir->mir();
MIRType to = ins->type();
DebugOnly<MIRType> from = ins->input()->type();
switch (to) {
case MIRType::Int32:
MOZ_ASSERT(from == MIRType::Float32);
masm.as_mfc1(ToRegister(lir->output()), ToFloatRegister(lir->input()));
@@ -2391,17 +2391,17 @@ CodeGeneratorMIPSShared::visitAsmReinter
case MIRType::Float32:
MOZ_ASSERT(from == MIRType::Int32);
masm.as_mtc1(ToRegister(lir->input()), ToFloatRegister(lir->output()));
break;
case MIRType::Double:
case MIRType::Int64:
MOZ_CRASH("not handled by this LIR opcode");
default:
- MOZ_CRASH("unexpected AsmReinterpret");
+ MOZ_CRASH("unexpected WasmReinterpret");
}
}
void
CodeGeneratorMIPSShared::visitUDivOrMod(LUDivOrMod* ins)
{
Register lhs = ToRegister(ins->lhs());
Register rhs = ToRegister(ins->rhs());
--- a/js/src/jit/mips-shared/CodeGenerator-mips-shared.h
+++ b/js/src/jit/mips-shared/CodeGenerator-mips-shared.h
@@ -227,17 +227,17 @@ class CodeGeneratorMIPSShared : public C
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 visitAsmReinterpret(LAsmReinterpret* 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);
void generateInvalidateEpilogue();
--- a/js/src/jit/mips32/CodeGenerator-mips32.cpp
+++ b/js/src/jit/mips32/CodeGenerator-mips32.cpp
@@ -664,29 +664,29 @@ CodeGeneratorMIPS::visitAsmSelectI64(LAs
masm.ma_b(cond, cond, &done, Assembler::NonZero, ShortJump);
masm.loadPtr(ToAddress(falseExpr.low()), output.low);
masm.loadPtr(ToAddress(falseExpr.high()), output.high);
masm.bind(&done);
}
}
void
-CodeGeneratorMIPS::visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir)
+CodeGeneratorMIPS::visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Double);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Int64);
Register64 input = ToRegister64(lir->getInt64Operand(0));
FloatRegister output = ToFloatRegister(lir->output());
masm.moveToDoubleLo(input.low, output);
masm.moveToDoubleHi(input.high, output);
}
void
-CodeGeneratorMIPS::visitAsmReinterpretToI64(LAsmReinterpretToI64* lir)
+CodeGeneratorMIPS::visitWasmReinterpretToI64(LWasmReinterpretToI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Double);
FloatRegister input = ToFloatRegister(lir->getOperand(0));
Register64 output = ToOutRegister64(lir);
masm.moveFromDoubleLo(input, output.low);
masm.moveFromDoubleHi(input, output.high);
--- a/js/src/jit/mips32/CodeGenerator-mips32.h
+++ b/js/src/jit/mips32/CodeGenerator-mips32.h
@@ -49,18 +49,18 @@ class CodeGeneratorMIPS : public CodeGen
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 visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir);
- void visitAsmReinterpretToI64(LAsmReinterpretToI64* 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);
void visitInt64ToFloatingPoint(LInt64ToFloatingPoint* lir);
void visitTestI64AndBranch(LTestI64AndBranch* lir);
--- a/js/src/jit/mips64/CodeGenerator-mips64.cpp
+++ b/js/src/jit/mips64/CodeGenerator-mips64.cpp
@@ -575,25 +575,25 @@ CodeGeneratorMIPS64::visitAsmSelectI64(L
Label done;
masm.ma_b(cond, cond, &done, Assembler::NonZero, ShortJump);
masm.loadPtr(ToAddress(falseExpr.value()), out.reg);
masm.bind(&done);
}
}
void
-CodeGeneratorMIPS64::visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir)
+CodeGeneratorMIPS64::visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Double);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Int64);
masm.as_dmtc1(ToRegister(lir->input()), ToFloatRegister(lir->output()));
}
void
-CodeGeneratorMIPS64::visitAsmReinterpretToI64(LAsmReinterpretToI64* lir)
+CodeGeneratorMIPS64::visitWasmReinterpretToI64(LWasmReinterpretToI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Double);
masm.as_dmfc1(ToRegister(lir->output()), ToFloatRegister(lir->input()));
}
void
CodeGeneratorMIPS64::visitExtendInt32ToInt64(LExtendInt32ToInt64* lir)
--- a/js/src/jit/mips64/CodeGenerator-mips64.h
+++ b/js/src/jit/mips64/CodeGenerator-mips64.h
@@ -55,18 +55,18 @@ class CodeGeneratorMIPS64 : public CodeG
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 visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir);
- void visitAsmReinterpretToI64(LAsmReinterpretToI64* 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);
void visitInt64ToFloatingPoint(LInt64ToFloatingPoint* lir);
void visitTestI64AndBranch(LTestI64AndBranch* lir);
--- a/js/src/jit/shared/LIR-shared.h
+++ b/js/src/jit/shared/LIR-shared.h
@@ -1400,52 +1400,52 @@ class LWasmTrap : public LInstructionHel
{ }
const MWasmTrap* mir() const {
return mir_->toWasmTrap();
}
};
template<size_t Defs, size_t Ops>
-class LAsmReinterpretBase : public LInstructionHelper<Defs, Ops, 0>
+class LWasmReinterpretBase : public LInstructionHelper<Defs, Ops, 0>
{
typedef LInstructionHelper<Defs, Ops, 0> Base;
public:
const LAllocation* input() {
return Base::getOperand(0);
}
- MAsmReinterpret* mir() const {
- return Base::mir_->toAsmReinterpret();
- }
-};
-
-class LAsmReinterpret : public LAsmReinterpretBase<1, 1>
-{
- public:
- LIR_HEADER(AsmReinterpret);
- explicit LAsmReinterpret(const LAllocation& input) {
+ MWasmReinterpret* mir() const {
+ return Base::mir_->toWasmReinterpret();
+ }
+};
+
+class LWasmReinterpret : public LWasmReinterpretBase<1, 1>
+{
+ public:
+ LIR_HEADER(WasmReinterpret);
+ explicit LWasmReinterpret(const LAllocation& input) {
setOperand(0, input);
}
};
-class LAsmReinterpretFromI64 : public LAsmReinterpretBase<1, INT64_PIECES>
-{
- public:
- LIR_HEADER(AsmReinterpretFromI64);
- explicit LAsmReinterpretFromI64(const LInt64Allocation& input) {
+class LWasmReinterpretFromI64 : public LWasmReinterpretBase<1, INT64_PIECES>
+{
+ public:
+ LIR_HEADER(WasmReinterpretFromI64);
+ explicit LWasmReinterpretFromI64(const LInt64Allocation& input) {
setInt64Operand(0, input);
}
};
-class LAsmReinterpretToI64 : public LAsmReinterpretBase<INT64_PIECES, 1>
-{
- public:
- LIR_HEADER(AsmReinterpretToI64);
- explicit LAsmReinterpretToI64(const LAllocation& input) {
+class LWasmReinterpretToI64 : public LWasmReinterpretBase<INT64_PIECES, 1>
+{
+ public:
+ LIR_HEADER(WasmReinterpretToI64);
+ explicit LWasmReinterpretToI64(const LAllocation& input) {
setOperand(0, input);
}
};
namespace details {
template<size_t Defs, size_t Ops, size_t Temps>
class RotateBase : public LInstructionHelper<Defs, Ops, Temps>
{
--- a/js/src/jit/shared/LOpcodes-shared.h
+++ b/js/src/jit/shared/LOpcodes-shared.h
@@ -369,19 +369,19 @@
_(RoundF) \
_(In) \
_(InArray) \
_(InstanceOfO) \
_(InstanceOfV) \
_(CallInstanceOf) \
_(InterruptCheck) \
_(WasmTrap) \
- _(AsmReinterpret) \
- _(AsmReinterpretToI64) \
- _(AsmReinterpretFromI64) \
+ _(WasmReinterpret) \
+ _(WasmReinterpretToI64) \
+ _(WasmReinterpretFromI64) \
_(Rotate) \
_(RotateI64) \
_(GetDOMProperty) \
_(GetDOMMemberV) \
_(GetDOMMemberT) \
_(SetDOMProperty) \
_(CallDOMNative) \
_(IsCallable) \
--- a/js/src/jit/x64/CodeGenerator-x64.cpp
+++ b/js/src/jit/x64/CodeGenerator-x64.cpp
@@ -350,25 +350,25 @@ CodeGeneratorX64::visitAsmSelectI64(LAsm
Register64 out = ToOutRegister64(lir);
MOZ_ASSERT(ToRegister64(lir->trueExpr()) == out, "true expr is reused for input");
masm.test32(cond, cond);
masm.cmovzq(falseExpr, out.reg);
}
void
-CodeGeneratorX64::visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir)
+CodeGeneratorX64::visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Double);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Int64);
masm.vmovq(ToRegister(lir->input()), ToFloatRegister(lir->output()));
}
void
-CodeGeneratorX64::visitAsmReinterpretToI64(LAsmReinterpretToI64* lir)
+CodeGeneratorX64::visitWasmReinterpretToI64(LWasmReinterpretToI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Double);
masm.vmovq(ToFloatRegister(lir->input()), ToRegister(lir->output()));
}
void
CodeGeneratorX64::visitAsmJSUInt32ToDouble(LAsmJSUInt32ToDouble* lir)
--- a/js/src/jit/x64/CodeGenerator-x64.h
+++ b/js/src/jit/x64/CodeGenerator-x64.h
@@ -71,18 +71,18 @@ class CodeGeneratorX64 : public CodeGene
void visitAsmJSLoadHeap(LAsmJSLoadHeap* ins);
void visitAsmJSStoreHeap(LAsmJSStoreHeap* ins);
void visitAsmJSCompareExchangeHeap(LAsmJSCompareExchangeHeap* ins);
void visitAsmJSAtomicExchangeHeap(LAsmJSAtomicExchangeHeap* ins);
void visitAsmJSAtomicBinopHeap(LAsmJSAtomicBinopHeap* ins);
void visitAsmJSAtomicBinopHeapForEffect(LAsmJSAtomicBinopHeapForEffect* ins);
void visitAsmJSUInt32ToDouble(LAsmJSUInt32ToDouble* lir);
void visitAsmJSUInt32ToFloat32(LAsmJSUInt32ToFloat32* lir);
- void visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir);
- void visitAsmReinterpretToI64(LAsmReinterpretToI64* lir);
+ void visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir);
+ void visitWasmReinterpretToI64(LWasmReinterpretToI64* lir);
void visitTestI64AndBranch(LTestI64AndBranch* lir);
};
typedef CodeGeneratorX64 CodeGeneratorSpecific;
} // namespace jit
} // namespace js
--- a/js/src/jit/x86-shared/CodeGenerator-x86-shared.cpp
+++ b/js/src/jit/x86-shared/CodeGenerator-x86-shared.cpp
@@ -360,20 +360,20 @@ CodeGeneratorX86Shared::visitAsmSelect(L
MOZ_CRASH("unhandled type in visitAsmSelect!");
}
masm.bind(&done);
return;
}
void
-CodeGeneratorX86Shared::visitAsmReinterpret(LAsmReinterpret* lir)
+CodeGeneratorX86Shared::visitWasmReinterpret(LWasmReinterpret* lir)
{
MOZ_ASSERT(gen->compilingAsmJS());
- MAsmReinterpret* ins = lir->mir();
+ MWasmReinterpret* ins = lir->mir();
MIRType to = ins->type();
#ifdef DEBUG
MIRType from = ins->input()->type();
#endif
switch (to) {
case MIRType::Int32:
@@ -383,17 +383,17 @@ CodeGeneratorX86Shared::visitAsmReinterp
case MIRType::Float32:
MOZ_ASSERT(from == MIRType::Int32);
masm.vmovd(ToRegister(lir->input()), ToFloatRegister(lir->output()));
break;
case MIRType::Double:
case MIRType::Int64:
MOZ_CRASH("not handled by this LIR opcode");
default:
- MOZ_CRASH("unexpected AsmReinterpret");
+ MOZ_CRASH("unexpected WasmReinterpret");
}
}
void
CodeGeneratorX86Shared::visitOutOfLineLoadTypedArrayOutOfBounds(OutOfLineLoadTypedArrayOutOfBounds* ool)
{
switch (ool->viewType()) {
case Scalar::Int64:
--- a/js/src/jit/x86-shared/CodeGenerator-x86-shared.h
+++ b/js/src/jit/x86-shared/CodeGenerator-x86-shared.h
@@ -240,17 +240,17 @@ class CodeGeneratorX86Shared : public Co
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 visitAsmReinterpret(LAsmReinterpret* lir);
+ 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);
virtual void visitCopySignD(LCopySignD* lir);
--- a/js/src/jit/x86/CodeGenerator-x86.cpp
+++ b/js/src/jit/x86/CodeGenerator-x86.cpp
@@ -1135,30 +1135,30 @@ CodeGeneratorX86::visitAsmSelectI64(LAsm
Label done;
masm.branchTest32(Assembler::NonZero, cond, cond, &done);
masm.movl(falseExpr.low, out.low);
masm.movl(falseExpr.high, out.high);
masm.bind(&done);
}
void
-CodeGeneratorX86::visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir)
+CodeGeneratorX86::visitWasmReinterpretFromI64(LWasmReinterpretFromI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Double);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Int64);
Register64 input = ToRegister64(lir->getInt64Operand(0));
masm.Push(input.high);
masm.Push(input.low);
masm.vmovq(Operand(esp, 0), ToFloatRegister(lir->output()));
masm.freeStack(sizeof(uint64_t));
}
void
-CodeGeneratorX86::visitAsmReinterpretToI64(LAsmReinterpretToI64* lir)
+CodeGeneratorX86::visitWasmReinterpretToI64(LWasmReinterpretToI64* lir)
{
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Double);
Register64 output = ToOutRegister64(lir);
masm.reserveStack(sizeof(uint64_t));
masm.vmovq(ToFloatRegister(lir->input()), Operand(esp, 0));
masm.Pop(output.low);
--- a/js/src/jit/x86/CodeGenerator-x86.h
+++ b/js/src/jit/x86/CodeGenerator-x86.h
@@ -70,18 +70,18 @@ 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 visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir);
- void visitAsmReinterpretToI64(LAsmReinterpretToI64* 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);
void visitInt64ToFloatingPoint(LInt64ToFloatingPoint* lir);
void visitTestI64AndBranch(LTestI64AndBranch* lir);