/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: set ts=8 sts=4 et sw=4 tw=99: * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef jit_shared_LOpcodes_shared_h #define jit_shared_LOpcodes_shared_h #define LIR_COMMON_OPCODE_LIST(_) \ _(Unbox) \ _(Box) \ _(UnboxFloatingPoint) \ _(OsiPoint) \ _(MoveGroup) \ _(Integer) \ _(Integer64) \ _(Pointer) \ _(Double) \ _(Float32) \ _(SimdBox) \ _(SimdUnbox) \ _(SimdSplatX16) \ _(SimdSplatX8) \ _(SimdSplatX4) \ _(Simd128Int) \ _(Simd128Float) \ _(SimdAllTrue) \ _(SimdAnyTrue) \ _(SimdReinterpretCast) \ _(SimdExtractElementI) \ _(SimdExtractElementU2D) \ _(SimdExtractElementB) \ _(SimdExtractElementF) \ _(SimdInsertElementI) \ _(SimdInsertElementF) \ _(SimdGeneralShuffleI) \ _(SimdGeneralShuffleF) \ _(SimdSwizzleI) \ _(SimdSwizzleF) \ _(SimdShuffle) \ _(SimdShuffleX4) \ _(SimdUnaryArithIx16) \ _(SimdUnaryArithIx8) \ _(SimdUnaryArithIx4) \ _(SimdUnaryArithFx4) \ _(SimdBinaryCompIx16) \ _(SimdBinaryCompIx8) \ _(SimdBinaryCompIx4) \ _(SimdBinaryCompFx4) \ _(SimdBinaryArithIx16) \ _(SimdBinaryArithIx8) \ _(SimdBinaryArithIx4) \ _(SimdBinaryArithFx4) \ _(SimdBinarySaturating) \ _(SimdBinaryBitwise) \ _(SimdShift) \ _(SimdSelect) \ _(Value) \ _(CloneLiteral) \ _(Parameter) \ _(Callee) \ _(IsConstructing) \ _(TableSwitch) \ _(TableSwitchV) \ _(Goto) \ _(NewArray) \ _(NewArrayCopyOnWrite) \ _(NewArrayDynamicLength) \ _(NewTypedArray) \ _(NewTypedArrayDynamicLength) \ _(NewObject) \ _(NewTypedObject) \ _(NewNamedLambdaObject) \ _(NewCallObject) \ _(NewSingletonCallObject) \ _(NewStringObject) \ _(NewDerivedTypedObject) \ _(InitElem) \ _(InitElemGetterSetter) \ _(MutateProto) \ _(InitProp) \ _(InitPropGetterSetter) \ _(CheckOverRecursed) \ _(DefVar) \ _(DefLexical) \ _(DefFun) \ _(CallKnown) \ _(CallGeneric) \ _(CallNative) \ _(ApplyArgsGeneric) \ _(ApplyArrayGeneric) \ _(Bail) \ _(Unreachable) \ _(EncodeSnapshot) \ _(GetDynamicName) \ _(CallDirectEval) \ _(StackArgT) \ _(StackArgV) \ _(CreateThis) \ _(CreateThisWithProto) \ _(CreateThisWithTemplate) \ _(CreateArgumentsObject) \ _(GetArgumentsObjectArg) \ _(SetArgumentsObjectArg) \ _(ReturnFromCtor) \ _(ComputeThis) \ _(BitNotI) \ _(BitNotV) \ _(BitOpI) \ _(BitOpI64) \ _(BitOpV) \ _(ShiftI) \ _(ShiftI64) \ _(SignExtend) \ _(UrshD) \ _(Return) \ _(Throw) \ _(Phi) \ _(TestIAndBranch) \ _(TestI64AndBranch) \ _(TestDAndBranch) \ _(TestFAndBranch) \ _(TestVAndBranch) \ _(TestOAndBranch) \ _(FunctionDispatch) \ _(ObjectGroupDispatch) \ _(Compare) \ _(CompareAndBranch) \ _(CompareI64) \ _(CompareI64AndBranch) \ _(CompareD) \ _(CompareDAndBranch) \ _(CompareF) \ _(CompareFAndBranch) \ _(CompareS) \ _(CompareStrictS) \ _(CompareB) \ _(CompareBAndBranch) \ _(CompareBitwise) \ _(CompareBitwiseAndBranch) \ _(CompareVM) \ _(BitAndAndBranch) \ _(IsNullOrLikeUndefinedV) \ _(IsNullOrLikeUndefinedT) \ _(IsNullOrLikeUndefinedAndBranchV)\ _(IsNullOrLikeUndefinedAndBranchT)\ _(MinMaxI) \ _(MinMaxD) \ _(MinMaxF) \ _(NegI) \ _(NegD) \ _(NegF) \ _(AbsI) \ _(AbsD) \ _(AbsF) \ _(ClzI) \ _(ClzI64) \ _(CtzI) \ _(CtzI64) \ _(PopcntI) \ _(PopcntI64) \ _(SqrtD) \ _(SqrtF) \ _(CopySignD) \ _(CopySignF) \ _(Atan2D) \ _(Hypot) \ _(PowI) \ _(PowD) \ _(PowHalfD) \ _(Random) \ _(MathFunctionD) \ _(MathFunctionF) \ _(NotI) \ _(NotI64) \ _(NotD) \ _(NotF) \ _(NotO) \ _(NotV) \ _(AddI) \ _(AddI64) \ _(SubI) \ _(SubI64) \ _(MulI) \ _(MulI64) \ _(MathD) \ _(MathF) \ _(DivI) \ _(DivPowTwoI) \ _(ModI) \ _(ModPowTwoI) \ _(ModD) \ _(BinaryV) \ _(Concat) \ _(CharCodeAt) \ _(FromCharCode) \ _(FromCodePoint) \ _(SinCos) \ _(StringSplit) \ _(Int32ToDouble) \ _(Float32ToDouble) \ _(DoubleToFloat32) \ _(Int32ToFloat32) \ _(ValueToDouble) \ _(ValueToInt32) \ _(ValueToFloat32) \ _(DoubleToInt32) \ _(Float32ToInt32) \ _(TruncateDToInt32) \ _(TruncateFToInt32) \ _(WrapInt64ToInt32) \ _(ExtendInt32ToInt64) \ _(BooleanToString) \ _(IntToString) \ _(DoubleToString) \ _(ValueToString) \ _(ValueToObjectOrNull) \ _(Int32x4ToFloat32x4) \ _(Float32x4ToInt32x4) \ _(Float32x4ToUint32x4) \ _(Start) \ _(NaNToZero) \ _(OsrEntry) \ _(OsrValue) \ _(OsrEnvironmentChain) \ _(OsrReturnValue) \ _(OsrArgumentsObject) \ _(RegExp) \ _(RegExpMatcher) \ _(RegExpSearcher) \ _(RegExpTester) \ _(RegExpPrototypeOptimizable) \ _(RegExpInstanceOptimizable) \ _(GetFirstDollarIndex) \ _(StringReplace) \ _(Substr) \ _(BinarySharedStub) \ _(UnarySharedStub) \ _(NullarySharedStub) \ _(Lambda) \ _(LambdaArrow) \ _(LambdaForSingleton) \ _(SetFunName) \ _(KeepAliveObject) \ _(Slots) \ _(Elements) \ _(ConvertElementsToDoubles) \ _(MaybeToDoubleElement) \ _(MaybeCopyElementsForWrite) \ _(LoadSlotV) \ _(LoadSlotT) \ _(StoreSlotV) \ _(StoreSlotT) \ _(GuardShape) \ _(GuardReceiverPolymorphic) \ _(GuardObjectGroup) \ _(GuardObjectIdentity) \ _(GuardClass) \ _(TypeBarrierV) \ _(TypeBarrierO) \ _(MonitorTypes) \ _(PostWriteBarrierO) \ _(PostWriteBarrierV) \ _(PostWriteElementBarrierO) \ _(PostWriteElementBarrierV) \ _(InitializedLength) \ _(SetInitializedLength) \ _(BoundsCheck) \ _(BoundsCheckRange) \ _(BoundsCheckLower) \ _(LoadElementV) \ _(LoadElementT) \ _(LoadElementHole) \ _(LoadUnboxedScalar) \ _(LoadUnboxedPointerV) \ _(LoadUnboxedPointerT) \ _(UnboxObjectOrNull) \ _(StoreElementV) \ _(StoreElementT) \ _(StoreUnboxedScalar) \ _(StoreUnboxedPointer) \ _(ArrayPopShiftV) \ _(ArrayPopShiftT) \ _(ArrayPushV) \ _(ArrayPushT) \ _(ArraySlice) \ _(ArrayJoin) \ _(StoreElementHoleV) \ _(StoreElementHoleT) \ _(FallibleStoreElementV) \ _(FallibleStoreElementT) \ _(LoadTypedArrayElementHole) \ _(LoadTypedArrayElementStatic) \ _(StoreTypedArrayElementHole) \ _(StoreTypedArrayElementStatic) \ _(AtomicIsLockFree) \ _(GuardSharedTypedArray) \ _(CompareExchangeTypedArrayElement) \ _(AtomicExchangeTypedArrayElement) \ _(AtomicTypedArrayElementBinop) \ _(AtomicTypedArrayElementBinopForEffect) \ _(EffectiveAddress) \ _(ClampIToUint8) \ _(ClampDToUint8) \ _(ClampVToUint8) \ _(LoadFixedSlotV) \ _(LoadFixedSlotT) \ _(LoadFixedSlotAndUnbox) \ _(StoreFixedSlotV) \ _(StoreFixedSlotT) \ _(FunctionEnvironment) \ _(GetPropertyCacheV) \ _(GetPropertyCacheT) \ _(GetPropertyPolymorphicV) \ _(GetPropertyPolymorphicT) \ _(BindNameCache) \ _(CallBindVar) \ _(CallGetProperty) \ _(GetNameCache) \ _(CallGetIntrinsicValue) \ _(CallGetElement) \ _(CallSetElement) \ _(CallInitElementArray) \ _(CallSetProperty) \ _(CallDeleteProperty) \ _(CallDeleteElement) \ _(SetPropertyCache) \ _(SetPropertyPolymorphicV) \ _(SetPropertyPolymorphicT) \ _(CallIteratorStartV) \ _(CallIteratorStartO) \ _(IteratorStartO) \ _(IteratorMore) \ _(IsNoIterAndBranch) \ _(IteratorEnd) \ _(ArrayLength) \ _(SetArrayLength) \ _(GetNextEntryForIterator) \ _(TypedArrayLength) \ _(TypedArrayElements) \ _(SetDisjointTypedElements) \ _(TypedObjectDescr) \ _(TypedObjectElements) \ _(SetTypedObjectOffset) \ _(StringLength) \ _(ArgumentsLength) \ _(GetFrameArgument) \ _(SetFrameArgumentT) \ _(SetFrameArgumentC) \ _(SetFrameArgumentV) \ _(RunOncePrologue) \ _(Rest) \ _(TypeOfV) \ _(ToAsync) \ _(ToIdV) \ _(Floor) \ _(FloorF) \ _(Ceil) \ _(CeilF) \ _(Round) \ _(RoundF) \ _(In) \ _(InArray) \ _(InstanceOfO) \ _(InstanceOfV) \ _(CallInstanceOf) \ _(InterruptCheck) \ _(Rotate) \ _(RotateI64) \ _(GetDOMProperty) \ _(GetDOMMemberV) \ _(GetDOMMemberT) \ _(SetDOMProperty) \ _(CallDOMNative) \ _(IsCallable) \ _(IsConstructor) \ _(IsObject) \ _(IsObjectAndBranch) \ _(HasClass) \ _(GuardToClass) \ _(RecompileCheck) \ _(MemoryBarrier) \ _(AssertRangeI) \ _(AssertRangeD) \ _(AssertRangeF) \ _(AssertRangeV) \ _(AssertResultV) \ _(AssertResultT) \ _(LexicalCheck) \ _(ThrowRuntimeLexicalError) \ _(GlobalNameConflictsCheck) \ _(Debugger) \ _(NewTarget) \ _(ArrowNewTarget) \ _(CheckReturn) \ _(CheckIsObj) \ _(CheckIsCallable) \ _(CheckObjCoercible) \ _(DebugCheckSelfHosted) \ _(AsmJSLoadHeap) \ _(AsmJSStoreHeap) \ _(AsmJSCompareExchangeHeap) \ _(AsmJSAtomicExchangeHeap) \ _(AsmJSAtomicBinopHeap) \ _(AsmJSAtomicBinopHeapForEffect)\ _(WasmTruncateToInt32) \ _(WasmTrap) \ _(WasmReinterpret) \ _(WasmReinterpretToI64) \ _(WasmReinterpretFromI64) \ _(WasmSelect) \ _(WasmSelectI64) \ _(WasmBoundsCheck) \ _(WasmAddOffset) \ _(WasmLoad) \ _(WasmLoadI64) \ _(WasmStore) \ _(WasmStoreI64) \ _(WasmLoadGlobalVar) \ _(WasmLoadGlobalVarI64) \ _(WasmStoreGlobalVar) \ _(WasmStoreGlobalVarI64) \ _(WasmParameter) \ _(WasmParameterI64) \ _(WasmReturn) \ _(WasmReturnI64) \ _(WasmReturnVoid) \ _(WasmStackArg) \ _(WasmStackArgI64) \ _(WasmCall) \ _(WasmCallI64) \ _(WasmUint32ToDouble) \ _(WasmUint32ToFloat32) #endif /* jit_shared_LOpcodes_shared_h */