1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit/LOpcodes.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,318 @@ 1.4 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- 1.5 + * vim: set ts=8 sts=4 et sw=4 tw=99: 1.6 + * This Source Code Form is subject to the terms of the Mozilla Public 1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.9 + 1.10 +#ifndef jit_LOpcodes_h 1.11 +#define jit_LOpcodes_h 1.12 + 1.13 +#define LIR_COMMON_OPCODE_LIST(_) \ 1.14 + _(Label) \ 1.15 + _(Nop) \ 1.16 + _(OsiPoint) \ 1.17 + _(MoveGroup) \ 1.18 + _(Integer) \ 1.19 + _(Pointer) \ 1.20 + _(Double) \ 1.21 + _(Float32) \ 1.22 + _(Value) \ 1.23 + _(CloneLiteral) \ 1.24 + _(Parameter) \ 1.25 + _(Callee) \ 1.26 + _(TableSwitch) \ 1.27 + _(TableSwitchV) \ 1.28 + _(Goto) \ 1.29 + _(NewArray) \ 1.30 + _(ArraySplice) \ 1.31 + _(NewObject) \ 1.32 + _(NewSlots) \ 1.33 + _(NewDeclEnvObject) \ 1.34 + _(NewCallObject) \ 1.35 + _(NewSingletonCallObject) \ 1.36 + _(NewStringObject) \ 1.37 + _(NewPar) \ 1.38 + _(NewDenseArrayPar) \ 1.39 + _(NewCallObjectPar) \ 1.40 + _(NewDerivedTypedObject) \ 1.41 + _(AbortPar) \ 1.42 + _(InitElem) \ 1.43 + _(InitElemGetterSetter) \ 1.44 + _(MutateProto) \ 1.45 + _(InitProp) \ 1.46 + _(InitPropGetterSetter) \ 1.47 + _(CheckOverRecursed) \ 1.48 + _(CheckOverRecursedPar) \ 1.49 + _(DefVar) \ 1.50 + _(DefFun) \ 1.51 + _(CallKnown) \ 1.52 + _(CallGeneric) \ 1.53 + _(CallNative) \ 1.54 + _(ApplyArgsGeneric) \ 1.55 + _(Bail) \ 1.56 + _(GetDynamicName) \ 1.57 + _(FilterArgumentsOrEvalS) \ 1.58 + _(FilterArgumentsOrEvalV) \ 1.59 + _(CallDirectEvalS) \ 1.60 + _(CallDirectEvalV) \ 1.61 + _(StackArgT) \ 1.62 + _(StackArgV) \ 1.63 + _(CreateThis) \ 1.64 + _(CreateThisWithProto) \ 1.65 + _(CreateThisWithTemplate) \ 1.66 + _(CreateArgumentsObject) \ 1.67 + _(GetArgumentsObjectArg) \ 1.68 + _(SetArgumentsObjectArg) \ 1.69 + _(ReturnFromCtor) \ 1.70 + _(ComputeThis) \ 1.71 + _(LoadArrowThis) \ 1.72 + _(BitNotI) \ 1.73 + _(BitNotV) \ 1.74 + _(BitOpI) \ 1.75 + _(BitOpV) \ 1.76 + _(ShiftI) \ 1.77 + _(UrshD) \ 1.78 + _(Return) \ 1.79 + _(Throw) \ 1.80 + _(Phi) \ 1.81 + _(TestIAndBranch) \ 1.82 + _(TestDAndBranch) \ 1.83 + _(TestFAndBranch) \ 1.84 + _(TestVAndBranch) \ 1.85 + _(TestOAndBranch) \ 1.86 + _(FunctionDispatch) \ 1.87 + _(TypeObjectDispatch) \ 1.88 + _(Compare) \ 1.89 + _(CompareAndBranch) \ 1.90 + _(CompareD) \ 1.91 + _(CompareDAndBranch) \ 1.92 + _(CompareF) \ 1.93 + _(CompareFAndBranch) \ 1.94 + _(CompareS) \ 1.95 + _(CompareStrictS) \ 1.96 + _(CompareB) \ 1.97 + _(CompareBAndBranch) \ 1.98 + _(CompareV) \ 1.99 + _(CompareVAndBranch) \ 1.100 + _(CompareVM) \ 1.101 + _(BitAndAndBranch) \ 1.102 + _(IsNullOrLikeUndefined) \ 1.103 + _(IsNullOrLikeUndefinedAndBranch)\ 1.104 + _(EmulatesUndefined) \ 1.105 + _(EmulatesUndefinedAndBranch) \ 1.106 + _(MinMaxI) \ 1.107 + _(MinMaxD) \ 1.108 + _(NegI) \ 1.109 + _(NegD) \ 1.110 + _(NegF) \ 1.111 + _(AbsI) \ 1.112 + _(AbsD) \ 1.113 + _(AbsF) \ 1.114 + _(SqrtD) \ 1.115 + _(SqrtF) \ 1.116 + _(Atan2D) \ 1.117 + _(Hypot) \ 1.118 + _(PowI) \ 1.119 + _(PowD) \ 1.120 + _(Random) \ 1.121 + _(MathFunctionD) \ 1.122 + _(MathFunctionF) \ 1.123 + _(NotI) \ 1.124 + _(NotD) \ 1.125 + _(NotF) \ 1.126 + _(NotO) \ 1.127 + _(NotV) \ 1.128 + _(AddI) \ 1.129 + _(SubI) \ 1.130 + _(MulI) \ 1.131 + _(MathD) \ 1.132 + _(MathF) \ 1.133 + _(ModD) \ 1.134 + _(BinaryV) \ 1.135 + _(Concat) \ 1.136 + _(ConcatPar) \ 1.137 + _(CharCodeAt) \ 1.138 + _(FromCharCode) \ 1.139 + _(StringSplit) \ 1.140 + _(Int32ToDouble) \ 1.141 + _(Float32ToDouble) \ 1.142 + _(DoubleToFloat32) \ 1.143 + _(Int32ToFloat32) \ 1.144 + _(ValueToDouble) \ 1.145 + _(ValueToInt32) \ 1.146 + _(ValueToFloat32) \ 1.147 + _(DoubleToInt32) \ 1.148 + _(Float32ToInt32) \ 1.149 + _(TruncateDToInt32) \ 1.150 + _(TruncateFToInt32) \ 1.151 + _(BooleanToString) \ 1.152 + _(IntToString) \ 1.153 + _(DoubleToString) \ 1.154 + _(PrimitiveToString) \ 1.155 + _(Start) \ 1.156 + _(OsrEntry) \ 1.157 + _(OsrValue) \ 1.158 + _(OsrScopeChain) \ 1.159 + _(OsrReturnValue) \ 1.160 + _(OsrArgumentsObject) \ 1.161 + _(RegExp) \ 1.162 + _(RegExpExec) \ 1.163 + _(RegExpTest) \ 1.164 + _(RegExpReplace) \ 1.165 + _(StringReplace) \ 1.166 + _(Lambda) \ 1.167 + _(LambdaArrow) \ 1.168 + _(LambdaForSingleton) \ 1.169 + _(LambdaPar) \ 1.170 + _(ImplicitThis) \ 1.171 + _(Slots) \ 1.172 + _(Elements) \ 1.173 + _(ConvertElementsToDoubles) \ 1.174 + _(MaybeToDoubleElement) \ 1.175 + _(LoadSlotV) \ 1.176 + _(LoadSlotT) \ 1.177 + _(StoreSlotV) \ 1.178 + _(StoreSlotT) \ 1.179 + _(GuardShape) \ 1.180 + _(GuardObjectType) \ 1.181 + _(GuardObjectIdentity) \ 1.182 + _(GuardClass) \ 1.183 + _(GuardThreadExclusive) \ 1.184 + _(TypeBarrierV) \ 1.185 + _(TypeBarrierO) \ 1.186 + _(MonitorTypes) \ 1.187 + _(PostWriteBarrierO) \ 1.188 + _(PostWriteBarrierV) \ 1.189 + _(InitializedLength) \ 1.190 + _(SetInitializedLength) \ 1.191 + _(NeuterCheck) \ 1.192 + _(BoundsCheck) \ 1.193 + _(BoundsCheckRange) \ 1.194 + _(BoundsCheckLower) \ 1.195 + _(LoadElementV) \ 1.196 + _(LoadElementT) \ 1.197 + _(LoadElementHole) \ 1.198 + _(StoreElementV) \ 1.199 + _(StoreElementT) \ 1.200 + _(ArrayPopShiftV) \ 1.201 + _(ArrayPopShiftT) \ 1.202 + _(ArrayPushV) \ 1.203 + _(ArrayPushT) \ 1.204 + _(ArrayConcat) \ 1.205 + _(StoreElementHoleV) \ 1.206 + _(StoreElementHoleT) \ 1.207 + _(LoadTypedArrayElement) \ 1.208 + _(LoadTypedArrayElementHole) \ 1.209 + _(LoadTypedArrayElementStatic) \ 1.210 + _(StoreTypedArrayElement) \ 1.211 + _(StoreTypedArrayElementHole) \ 1.212 + _(StoreTypedArrayElementStatic) \ 1.213 + _(EffectiveAddress) \ 1.214 + _(ClampIToUint8) \ 1.215 + _(ClampDToUint8) \ 1.216 + _(ClampVToUint8) \ 1.217 + _(LoadFixedSlotV) \ 1.218 + _(LoadFixedSlotT) \ 1.219 + _(StoreFixedSlotV) \ 1.220 + _(StoreFixedSlotT) \ 1.221 + _(FunctionEnvironment) \ 1.222 + _(ForkJoinContext) \ 1.223 + _(ForkJoinGetSlice) \ 1.224 + _(GetPropertyCacheV) \ 1.225 + _(GetPropertyCacheT) \ 1.226 + _(GetPropertyPolymorphicV) \ 1.227 + _(GetPropertyPolymorphicT) \ 1.228 + _(GetElementCacheV) \ 1.229 + _(GetElementCacheT) \ 1.230 + _(BindNameCache) \ 1.231 + _(CallGetProperty) \ 1.232 + _(GetNameCache) \ 1.233 + _(CallGetIntrinsicValue) \ 1.234 + _(CallsiteCloneCache) \ 1.235 + _(CallGetElement) \ 1.236 + _(CallSetElement) \ 1.237 + _(CallInitElementArray) \ 1.238 + _(CallSetProperty) \ 1.239 + _(CallDeleteProperty) \ 1.240 + _(CallDeleteElement) \ 1.241 + _(SetPropertyCacheV) \ 1.242 + _(SetPropertyCacheT) \ 1.243 + _(SetElementCacheV) \ 1.244 + _(SetElementCacheT) \ 1.245 + _(SetPropertyPolymorphicV) \ 1.246 + _(SetPropertyPolymorphicT) \ 1.247 + _(CallIteratorStart) \ 1.248 + _(IteratorStart) \ 1.249 + _(IteratorNext) \ 1.250 + _(IteratorMore) \ 1.251 + _(IteratorEnd) \ 1.252 + _(ArrayLength) \ 1.253 + _(SetArrayLength) \ 1.254 + _(TypedArrayLength) \ 1.255 + _(TypedArrayElements) \ 1.256 + _(TypedObjectElements) \ 1.257 + _(SetTypedObjectOffset) \ 1.258 + _(StringLength) \ 1.259 + _(ArgumentsLength) \ 1.260 + _(GetFrameArgument) \ 1.261 + _(SetFrameArgumentT) \ 1.262 + _(SetFrameArgumentC) \ 1.263 + _(SetFrameArgumentV) \ 1.264 + _(RunOncePrologue) \ 1.265 + _(Rest) \ 1.266 + _(RestPar) \ 1.267 + _(TypeOfV) \ 1.268 + _(ToIdV) \ 1.269 + _(Floor) \ 1.270 + _(FloorF) \ 1.271 + _(Round) \ 1.272 + _(RoundF) \ 1.273 + _(In) \ 1.274 + _(InArray) \ 1.275 + _(InstanceOfO) \ 1.276 + _(InstanceOfV) \ 1.277 + _(CallInstanceOf) \ 1.278 + _(InterruptCheck) \ 1.279 + _(InterruptCheckImplicit) \ 1.280 + _(ProfilerStackOp) \ 1.281 + _(GetDOMProperty) \ 1.282 + _(GetDOMMember) \ 1.283 + _(SetDOMProperty) \ 1.284 + _(CallDOMNative) \ 1.285 + _(IsCallable) \ 1.286 + _(HaveSameClass) \ 1.287 + _(HasClass) \ 1.288 + _(AsmJSLoadHeap) \ 1.289 + _(AsmJSStoreHeap) \ 1.290 + _(AsmJSLoadGlobalVar) \ 1.291 + _(AsmJSStoreGlobalVar) \ 1.292 + _(AsmJSLoadFFIFunc) \ 1.293 + _(AsmJSParameter) \ 1.294 + _(AsmJSReturn) \ 1.295 + _(AsmJSVoidReturn) \ 1.296 + _(AsmJSPassStackArg) \ 1.297 + _(AsmJSCall) \ 1.298 + _(InterruptCheckPar) \ 1.299 + _(RecompileCheck) \ 1.300 + _(AssertRangeI) \ 1.301 + _(AssertRangeD) \ 1.302 + _(AssertRangeF) \ 1.303 + _(AssertRangeV) 1.304 + 1.305 +#if defined(JS_CODEGEN_X86) 1.306 +# include "jit/x86/LOpcodes-x86.h" 1.307 +#elif defined(JS_CODEGEN_X64) 1.308 +# include "jit/x64/LOpcodes-x64.h" 1.309 +#elif defined(JS_CODEGEN_ARM) 1.310 +# include "jit/arm/LOpcodes-arm.h" 1.311 +#elif defined(JS_CODEGEN_MIPS) 1.312 +# include "jit/mips/LOpcodes-mips.h" 1.313 +#else 1.314 +# error "Unknown architecture!" 1.315 +#endif 1.316 + 1.317 +#define LIR_OPCODE_LIST(_) \ 1.318 + LIR_COMMON_OPCODE_LIST(_) \ 1.319 + LIR_CPU_OPCODE_LIST(_) 1.320 + 1.321 +#endif /* jit_LOpcodes_h */