michael@0: /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- michael@0: * vim: set ts=8 sts=4 et sw=4 tw=99: michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef jit_LOpcodes_h michael@0: #define jit_LOpcodes_h michael@0: michael@0: #define LIR_COMMON_OPCODE_LIST(_) \ michael@0: _(Label) \ michael@0: _(Nop) \ michael@0: _(OsiPoint) \ michael@0: _(MoveGroup) \ michael@0: _(Integer) \ michael@0: _(Pointer) \ michael@0: _(Double) \ michael@0: _(Float32) \ michael@0: _(Value) \ michael@0: _(CloneLiteral) \ michael@0: _(Parameter) \ michael@0: _(Callee) \ michael@0: _(TableSwitch) \ michael@0: _(TableSwitchV) \ michael@0: _(Goto) \ michael@0: _(NewArray) \ michael@0: _(ArraySplice) \ michael@0: _(NewObject) \ michael@0: _(NewSlots) \ michael@0: _(NewDeclEnvObject) \ michael@0: _(NewCallObject) \ michael@0: _(NewSingletonCallObject) \ michael@0: _(NewStringObject) \ michael@0: _(NewPar) \ michael@0: _(NewDenseArrayPar) \ michael@0: _(NewCallObjectPar) \ michael@0: _(NewDerivedTypedObject) \ michael@0: _(AbortPar) \ michael@0: _(InitElem) \ michael@0: _(InitElemGetterSetter) \ michael@0: _(MutateProto) \ michael@0: _(InitProp) \ michael@0: _(InitPropGetterSetter) \ michael@0: _(CheckOverRecursed) \ michael@0: _(CheckOverRecursedPar) \ michael@0: _(DefVar) \ michael@0: _(DefFun) \ michael@0: _(CallKnown) \ michael@0: _(CallGeneric) \ michael@0: _(CallNative) \ michael@0: _(ApplyArgsGeneric) \ michael@0: _(Bail) \ michael@0: _(GetDynamicName) \ michael@0: _(FilterArgumentsOrEvalS) \ michael@0: _(FilterArgumentsOrEvalV) \ michael@0: _(CallDirectEvalS) \ michael@0: _(CallDirectEvalV) \ michael@0: _(StackArgT) \ michael@0: _(StackArgV) \ michael@0: _(CreateThis) \ michael@0: _(CreateThisWithProto) \ michael@0: _(CreateThisWithTemplate) \ michael@0: _(CreateArgumentsObject) \ michael@0: _(GetArgumentsObjectArg) \ michael@0: _(SetArgumentsObjectArg) \ michael@0: _(ReturnFromCtor) \ michael@0: _(ComputeThis) \ michael@0: _(LoadArrowThis) \ michael@0: _(BitNotI) \ michael@0: _(BitNotV) \ michael@0: _(BitOpI) \ michael@0: _(BitOpV) \ michael@0: _(ShiftI) \ michael@0: _(UrshD) \ michael@0: _(Return) \ michael@0: _(Throw) \ michael@0: _(Phi) \ michael@0: _(TestIAndBranch) \ michael@0: _(TestDAndBranch) \ michael@0: _(TestFAndBranch) \ michael@0: _(TestVAndBranch) \ michael@0: _(TestOAndBranch) \ michael@0: _(FunctionDispatch) \ michael@0: _(TypeObjectDispatch) \ michael@0: _(Compare) \ michael@0: _(CompareAndBranch) \ michael@0: _(CompareD) \ michael@0: _(CompareDAndBranch) \ michael@0: _(CompareF) \ michael@0: _(CompareFAndBranch) \ michael@0: _(CompareS) \ michael@0: _(CompareStrictS) \ michael@0: _(CompareB) \ michael@0: _(CompareBAndBranch) \ michael@0: _(CompareV) \ michael@0: _(CompareVAndBranch) \ michael@0: _(CompareVM) \ michael@0: _(BitAndAndBranch) \ michael@0: _(IsNullOrLikeUndefined) \ michael@0: _(IsNullOrLikeUndefinedAndBranch)\ michael@0: _(EmulatesUndefined) \ michael@0: _(EmulatesUndefinedAndBranch) \ michael@0: _(MinMaxI) \ michael@0: _(MinMaxD) \ michael@0: _(NegI) \ michael@0: _(NegD) \ michael@0: _(NegF) \ michael@0: _(AbsI) \ michael@0: _(AbsD) \ michael@0: _(AbsF) \ michael@0: _(SqrtD) \ michael@0: _(SqrtF) \ michael@0: _(Atan2D) \ michael@0: _(Hypot) \ michael@0: _(PowI) \ michael@0: _(PowD) \ michael@0: _(Random) \ michael@0: _(MathFunctionD) \ michael@0: _(MathFunctionF) \ michael@0: _(NotI) \ michael@0: _(NotD) \ michael@0: _(NotF) \ michael@0: _(NotO) \ michael@0: _(NotV) \ michael@0: _(AddI) \ michael@0: _(SubI) \ michael@0: _(MulI) \ michael@0: _(MathD) \ michael@0: _(MathF) \ michael@0: _(ModD) \ michael@0: _(BinaryV) \ michael@0: _(Concat) \ michael@0: _(ConcatPar) \ michael@0: _(CharCodeAt) \ michael@0: _(FromCharCode) \ michael@0: _(StringSplit) \ michael@0: _(Int32ToDouble) \ michael@0: _(Float32ToDouble) \ michael@0: _(DoubleToFloat32) \ michael@0: _(Int32ToFloat32) \ michael@0: _(ValueToDouble) \ michael@0: _(ValueToInt32) \ michael@0: _(ValueToFloat32) \ michael@0: _(DoubleToInt32) \ michael@0: _(Float32ToInt32) \ michael@0: _(TruncateDToInt32) \ michael@0: _(TruncateFToInt32) \ michael@0: _(BooleanToString) \ michael@0: _(IntToString) \ michael@0: _(DoubleToString) \ michael@0: _(PrimitiveToString) \ michael@0: _(Start) \ michael@0: _(OsrEntry) \ michael@0: _(OsrValue) \ michael@0: _(OsrScopeChain) \ michael@0: _(OsrReturnValue) \ michael@0: _(OsrArgumentsObject) \ michael@0: _(RegExp) \ michael@0: _(RegExpExec) \ michael@0: _(RegExpTest) \ michael@0: _(RegExpReplace) \ michael@0: _(StringReplace) \ michael@0: _(Lambda) \ michael@0: _(LambdaArrow) \ michael@0: _(LambdaForSingleton) \ michael@0: _(LambdaPar) \ michael@0: _(ImplicitThis) \ michael@0: _(Slots) \ michael@0: _(Elements) \ michael@0: _(ConvertElementsToDoubles) \ michael@0: _(MaybeToDoubleElement) \ michael@0: _(LoadSlotV) \ michael@0: _(LoadSlotT) \ michael@0: _(StoreSlotV) \ michael@0: _(StoreSlotT) \ michael@0: _(GuardShape) \ michael@0: _(GuardObjectType) \ michael@0: _(GuardObjectIdentity) \ michael@0: _(GuardClass) \ michael@0: _(GuardThreadExclusive) \ michael@0: _(TypeBarrierV) \ michael@0: _(TypeBarrierO) \ michael@0: _(MonitorTypes) \ michael@0: _(PostWriteBarrierO) \ michael@0: _(PostWriteBarrierV) \ michael@0: _(InitializedLength) \ michael@0: _(SetInitializedLength) \ michael@0: _(NeuterCheck) \ michael@0: _(BoundsCheck) \ michael@0: _(BoundsCheckRange) \ michael@0: _(BoundsCheckLower) \ michael@0: _(LoadElementV) \ michael@0: _(LoadElementT) \ michael@0: _(LoadElementHole) \ michael@0: _(StoreElementV) \ michael@0: _(StoreElementT) \ michael@0: _(ArrayPopShiftV) \ michael@0: _(ArrayPopShiftT) \ michael@0: _(ArrayPushV) \ michael@0: _(ArrayPushT) \ michael@0: _(ArrayConcat) \ michael@0: _(StoreElementHoleV) \ michael@0: _(StoreElementHoleT) \ michael@0: _(LoadTypedArrayElement) \ michael@0: _(LoadTypedArrayElementHole) \ michael@0: _(LoadTypedArrayElementStatic) \ michael@0: _(StoreTypedArrayElement) \ michael@0: _(StoreTypedArrayElementHole) \ michael@0: _(StoreTypedArrayElementStatic) \ michael@0: _(EffectiveAddress) \ michael@0: _(ClampIToUint8) \ michael@0: _(ClampDToUint8) \ michael@0: _(ClampVToUint8) \ michael@0: _(LoadFixedSlotV) \ michael@0: _(LoadFixedSlotT) \ michael@0: _(StoreFixedSlotV) \ michael@0: _(StoreFixedSlotT) \ michael@0: _(FunctionEnvironment) \ michael@0: _(ForkJoinContext) \ michael@0: _(ForkJoinGetSlice) \ michael@0: _(GetPropertyCacheV) \ michael@0: _(GetPropertyCacheT) \ michael@0: _(GetPropertyPolymorphicV) \ michael@0: _(GetPropertyPolymorphicT) \ michael@0: _(GetElementCacheV) \ michael@0: _(GetElementCacheT) \ michael@0: _(BindNameCache) \ michael@0: _(CallGetProperty) \ michael@0: _(GetNameCache) \ michael@0: _(CallGetIntrinsicValue) \ michael@0: _(CallsiteCloneCache) \ michael@0: _(CallGetElement) \ michael@0: _(CallSetElement) \ michael@0: _(CallInitElementArray) \ michael@0: _(CallSetProperty) \ michael@0: _(CallDeleteProperty) \ michael@0: _(CallDeleteElement) \ michael@0: _(SetPropertyCacheV) \ michael@0: _(SetPropertyCacheT) \ michael@0: _(SetElementCacheV) \ michael@0: _(SetElementCacheT) \ michael@0: _(SetPropertyPolymorphicV) \ michael@0: _(SetPropertyPolymorphicT) \ michael@0: _(CallIteratorStart) \ michael@0: _(IteratorStart) \ michael@0: _(IteratorNext) \ michael@0: _(IteratorMore) \ michael@0: _(IteratorEnd) \ michael@0: _(ArrayLength) \ michael@0: _(SetArrayLength) \ michael@0: _(TypedArrayLength) \ michael@0: _(TypedArrayElements) \ michael@0: _(TypedObjectElements) \ michael@0: _(SetTypedObjectOffset) \ michael@0: _(StringLength) \ michael@0: _(ArgumentsLength) \ michael@0: _(GetFrameArgument) \ michael@0: _(SetFrameArgumentT) \ michael@0: _(SetFrameArgumentC) \ michael@0: _(SetFrameArgumentV) \ michael@0: _(RunOncePrologue) \ michael@0: _(Rest) \ michael@0: _(RestPar) \ michael@0: _(TypeOfV) \ michael@0: _(ToIdV) \ michael@0: _(Floor) \ michael@0: _(FloorF) \ michael@0: _(Round) \ michael@0: _(RoundF) \ michael@0: _(In) \ michael@0: _(InArray) \ michael@0: _(InstanceOfO) \ michael@0: _(InstanceOfV) \ michael@0: _(CallInstanceOf) \ michael@0: _(InterruptCheck) \ michael@0: _(InterruptCheckImplicit) \ michael@0: _(ProfilerStackOp) \ michael@0: _(GetDOMProperty) \ michael@0: _(GetDOMMember) \ michael@0: _(SetDOMProperty) \ michael@0: _(CallDOMNative) \ michael@0: _(IsCallable) \ michael@0: _(HaveSameClass) \ michael@0: _(HasClass) \ michael@0: _(AsmJSLoadHeap) \ michael@0: _(AsmJSStoreHeap) \ michael@0: _(AsmJSLoadGlobalVar) \ michael@0: _(AsmJSStoreGlobalVar) \ michael@0: _(AsmJSLoadFFIFunc) \ michael@0: _(AsmJSParameter) \ michael@0: _(AsmJSReturn) \ michael@0: _(AsmJSVoidReturn) \ michael@0: _(AsmJSPassStackArg) \ michael@0: _(AsmJSCall) \ michael@0: _(InterruptCheckPar) \ michael@0: _(RecompileCheck) \ michael@0: _(AssertRangeI) \ michael@0: _(AssertRangeD) \ michael@0: _(AssertRangeF) \ michael@0: _(AssertRangeV) michael@0: michael@0: #if defined(JS_CODEGEN_X86) michael@0: # include "jit/x86/LOpcodes-x86.h" michael@0: #elif defined(JS_CODEGEN_X64) michael@0: # include "jit/x64/LOpcodes-x64.h" michael@0: #elif defined(JS_CODEGEN_ARM) michael@0: # include "jit/arm/LOpcodes-arm.h" michael@0: #elif defined(JS_CODEGEN_MIPS) michael@0: # include "jit/mips/LOpcodes-mips.h" michael@0: #else michael@0: # error "Unknown architecture!" michael@0: #endif michael@0: michael@0: #define LIR_OPCODE_LIST(_) \ michael@0: LIR_COMMON_OPCODE_LIST(_) \ michael@0: LIR_CPU_OPCODE_LIST(_) michael@0: michael@0: #endif /* jit_LOpcodes_h */