blob: 44f3a92b977c059c21846f79895839b5ab155617 [file] [log] [blame]
/* -*- 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) \
_(Pointer) \
_(Double) \
_(Float32) \
_(SimdBox) \
_(SimdUnbox) \
_(SimdSplatX4) \
_(Int32x4) \
_(Float32x4) \
_(SimdReinterpretCast) \
_(SimdExtractElementI) \
_(SimdExtractElementF) \
_(SimdInsertElementI) \
_(SimdInsertElementF) \
_(SimdSignMaskX4) \
_(SimdGeneralShuffleI) \
_(SimdGeneralShuffleF) \
_(SimdSwizzleI) \
_(SimdSwizzleF) \
_(SimdShuffle) \
_(SimdUnaryArithIx4) \
_(SimdUnaryArithFx4) \
_(SimdBinaryCompIx4) \
_(SimdBinaryCompFx4) \
_(SimdBinaryArithIx4) \
_(SimdBinaryArithFx4) \
_(SimdBinaryBitwiseX4) \
_(SimdShift) \
_(SimdSelect) \
_(Value) \
_(CloneLiteral) \
_(Parameter) \
_(Callee) \
_(IsConstructing) \
_(TableSwitch) \
_(TableSwitchV) \
_(Goto) \
_(NewArray) \
_(NewArrayCopyOnWrite) \
_(NewArrayDynamicLength) \
_(ArraySplice) \
_(NewObject) \
_(NewTypedObject) \
_(NewDeclEnvObject) \
_(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) \
_(BitOpV) \
_(ShiftI) \
_(UrshD) \
_(Return) \
_(Throw) \
_(Phi) \
_(TestIAndBranch) \
_(TestDAndBranch) \
_(TestFAndBranch) \
_(TestVAndBranch) \
_(TestOAndBranch) \
_(FunctionDispatch) \
_(ObjectGroupDispatch) \
_(Compare) \
_(CompareAndBranch) \
_(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) \
_(SqrtD) \
_(SqrtF) \
_(Atan2D) \
_(Hypot) \
_(PowI) \
_(PowD) \
_(PowHalfD) \
_(Random) \
_(MathFunctionD) \
_(MathFunctionF) \
_(NotI) \
_(NotD) \
_(NotF) \
_(NotO) \
_(NotV) \
_(AddI) \
_(SubI) \
_(MulI) \
_(MathD) \
_(MathF) \
_(DivI) \
_(DivPowTwoI) \
_(ModI) \
_(ModPowTwoI) \
_(ModD) \
_(BinaryV) \
_(Concat) \
_(CharCodeAt) \
_(FromCharCode) \
_(SinCos) \
_(StringSplit) \
_(Int32ToDouble) \
_(Float32ToDouble) \
_(DoubleToFloat32) \
_(Int32ToFloat32) \
_(ValueToDouble) \
_(ValueToInt32) \
_(ValueToFloat32) \
_(DoubleToInt32) \
_(Float32ToInt32) \
_(TruncateDToInt32) \
_(TruncateFToInt32) \
_(BooleanToString) \
_(IntToString) \
_(DoubleToString) \
_(ValueToString) \
_(ValueToObjectOrNull) \
_(Int32x4ToFloat32x4) \
_(Float32x4ToInt32x4) \
_(Start) \
_(OsrEntry) \
_(OsrValue) \
_(OsrScopeChain) \
_(OsrReturnValue) \
_(OsrArgumentsObject) \
_(RegExp) \
_(RegExpExec) \
_(RegExpTest) \
_(RegExpReplace) \
_(StringReplace) \
_(Substr) \
_(BinarySharedStub) \
_(UnarySharedStub) \
_(Lambda) \
_(LambdaArrow) \
_(LambdaForSingleton) \
_(KeepAliveObject) \
_(Slots) \
_(Elements) \
_(ConvertElementsToDoubles) \
_(MaybeToDoubleElement) \
_(MaybeCopyElementsForWrite) \
_(LoadSlotV) \
_(LoadSlotT) \
_(StoreSlotV) \
_(StoreSlotT) \
_(GuardShape) \
_(GuardReceiverPolymorphic) \
_(GuardObjectGroup) \
_(GuardObjectIdentity) \
_(GuardClass) \
_(GuardUnboxedExpando) \
_(LoadUnboxedExpando) \
_(TypeBarrierV) \
_(TypeBarrierO) \
_(MonitorTypes) \
_(PostWriteBarrierO) \
_(PostWriteBarrierV) \
_(InitializedLength) \
_(SetInitializedLength) \
_(UnboxedArrayLength) \
_(UnboxedArrayInitializedLength) \
_(IncrementUnboxedArrayInitializedLength) \
_(SetUnboxedArrayInitializedLength) \
_(BoundsCheck) \
_(BoundsCheckRange) \
_(BoundsCheckLower) \
_(LoadElementV) \
_(LoadElementT) \
_(LoadElementHole) \
_(LoadUnboxedScalar) \
_(LoadUnboxedPointerV) \
_(LoadUnboxedPointerT) \
_(UnboxObjectOrNull) \
_(StoreElementV) \
_(StoreElementT) \
_(StoreUnboxedScalar) \
_(StoreUnboxedPointer) \
_(ConvertUnboxedObjectToNative) \
_(ArrayPopShiftV) \
_(ArrayPopShiftT) \
_(ArrayPushV) \
_(ArrayPushT) \
_(ArrayConcat) \
_(ArraySlice) \
_(ArrayJoin) \
_(StoreElementHoleV) \
_(StoreElementHoleT) \
_(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) \
_(CallGetProperty) \
_(GetNameCache) \
_(CallGetIntrinsicValue) \
_(CallGetElement) \
_(CallSetElement) \
_(CallInitElementArray) \
_(CallSetProperty) \
_(CallDeleteProperty) \
_(CallDeleteElement) \
_(SetPropertyCache) \
_(SetPropertyPolymorphicV) \
_(SetPropertyPolymorphicT) \
_(CallIteratorStart) \
_(IteratorStart) \
_(IteratorMore) \
_(IsNoIterAndBranch) \
_(IteratorEnd) \
_(ArrayLength) \
_(SetArrayLength) \
_(TypedArrayLength) \
_(TypedArrayElements) \
_(SetDisjointTypedElements) \
_(TypedObjectDescr) \
_(TypedObjectElements) \
_(SetTypedObjectOffset) \
_(StringLength) \
_(ArgumentsLength) \
_(GetFrameArgument) \
_(SetFrameArgumentT) \
_(SetFrameArgumentC) \
_(SetFrameArgumentV) \
_(RunOncePrologue) \
_(Rest) \
_(TypeOfV) \
_(ToIdV) \
_(Floor) \
_(FloorF) \
_(Ceil) \
_(CeilF) \
_(Round) \
_(RoundF) \
_(In) \
_(InArray) \
_(InstanceOfO) \
_(InstanceOfV) \
_(CallInstanceOf) \
_(InterruptCheck) \
_(AsmJSInterruptCheck) \
_(InterruptCheckImplicit) \
_(GetDOMProperty) \
_(GetDOMMemberV) \
_(GetDOMMemberT) \
_(SetDOMProperty) \
_(CallDOMNative) \
_(IsCallable) \
_(IsObject) \
_(IsObjectAndBranch) \
_(HasClass) \
_(AsmJSLoadHeap) \
_(AsmJSStoreHeap) \
_(AsmJSLoadFuncPtr) \
_(AsmJSLoadGlobalVar) \
_(AsmJSStoreGlobalVar) \
_(AsmJSLoadFFIFunc) \
_(AsmJSParameter) \
_(AsmJSReturn) \
_(AsmJSVoidReturn) \
_(AsmJSPassStackArg) \
_(AsmJSCall) \
_(AsmJSCompareExchangeHeap) \
_(AsmJSAtomicExchangeHeap) \
_(AsmJSAtomicBinopHeap) \
_(AsmJSAtomicBinopHeapForEffect)\
_(AsmJSUInt32ToDouble) \
_(AsmJSUInt32ToFloat32) \
_(RecompileCheck) \
_(MemoryBarrier) \
_(AssertRangeI) \
_(AssertRangeD) \
_(AssertRangeF) \
_(AssertRangeV) \
_(AssertResultV) \
_(AssertResultT) \
_(LexicalCheck) \
_(ThrowRuntimeLexicalError) \
_(GlobalNameConflictsCheck) \
_(Debugger) \
_(NewTarget) \
_(ArrowNewTarget) \
_(CheckReturn) \
_(CheckObjCoercible)
#endif /* jit_shared_LOpcodes_shared_h */