|
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- |
|
2 * vim: set ts=8 sts=4 et sw=4 tw=99: |
|
3 * This Source Code Form is subject to the terms of the Mozilla Public |
|
4 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
6 |
|
7 #ifndef jit_LOpcodes_h |
|
8 #define jit_LOpcodes_h |
|
9 |
|
10 #define LIR_COMMON_OPCODE_LIST(_) \ |
|
11 _(Label) \ |
|
12 _(Nop) \ |
|
13 _(OsiPoint) \ |
|
14 _(MoveGroup) \ |
|
15 _(Integer) \ |
|
16 _(Pointer) \ |
|
17 _(Double) \ |
|
18 _(Float32) \ |
|
19 _(Value) \ |
|
20 _(CloneLiteral) \ |
|
21 _(Parameter) \ |
|
22 _(Callee) \ |
|
23 _(TableSwitch) \ |
|
24 _(TableSwitchV) \ |
|
25 _(Goto) \ |
|
26 _(NewArray) \ |
|
27 _(ArraySplice) \ |
|
28 _(NewObject) \ |
|
29 _(NewSlots) \ |
|
30 _(NewDeclEnvObject) \ |
|
31 _(NewCallObject) \ |
|
32 _(NewSingletonCallObject) \ |
|
33 _(NewStringObject) \ |
|
34 _(NewPar) \ |
|
35 _(NewDenseArrayPar) \ |
|
36 _(NewCallObjectPar) \ |
|
37 _(NewDerivedTypedObject) \ |
|
38 _(AbortPar) \ |
|
39 _(InitElem) \ |
|
40 _(InitElemGetterSetter) \ |
|
41 _(MutateProto) \ |
|
42 _(InitProp) \ |
|
43 _(InitPropGetterSetter) \ |
|
44 _(CheckOverRecursed) \ |
|
45 _(CheckOverRecursedPar) \ |
|
46 _(DefVar) \ |
|
47 _(DefFun) \ |
|
48 _(CallKnown) \ |
|
49 _(CallGeneric) \ |
|
50 _(CallNative) \ |
|
51 _(ApplyArgsGeneric) \ |
|
52 _(Bail) \ |
|
53 _(GetDynamicName) \ |
|
54 _(FilterArgumentsOrEvalS) \ |
|
55 _(FilterArgumentsOrEvalV) \ |
|
56 _(CallDirectEvalS) \ |
|
57 _(CallDirectEvalV) \ |
|
58 _(StackArgT) \ |
|
59 _(StackArgV) \ |
|
60 _(CreateThis) \ |
|
61 _(CreateThisWithProto) \ |
|
62 _(CreateThisWithTemplate) \ |
|
63 _(CreateArgumentsObject) \ |
|
64 _(GetArgumentsObjectArg) \ |
|
65 _(SetArgumentsObjectArg) \ |
|
66 _(ReturnFromCtor) \ |
|
67 _(ComputeThis) \ |
|
68 _(LoadArrowThis) \ |
|
69 _(BitNotI) \ |
|
70 _(BitNotV) \ |
|
71 _(BitOpI) \ |
|
72 _(BitOpV) \ |
|
73 _(ShiftI) \ |
|
74 _(UrshD) \ |
|
75 _(Return) \ |
|
76 _(Throw) \ |
|
77 _(Phi) \ |
|
78 _(TestIAndBranch) \ |
|
79 _(TestDAndBranch) \ |
|
80 _(TestFAndBranch) \ |
|
81 _(TestVAndBranch) \ |
|
82 _(TestOAndBranch) \ |
|
83 _(FunctionDispatch) \ |
|
84 _(TypeObjectDispatch) \ |
|
85 _(Compare) \ |
|
86 _(CompareAndBranch) \ |
|
87 _(CompareD) \ |
|
88 _(CompareDAndBranch) \ |
|
89 _(CompareF) \ |
|
90 _(CompareFAndBranch) \ |
|
91 _(CompareS) \ |
|
92 _(CompareStrictS) \ |
|
93 _(CompareB) \ |
|
94 _(CompareBAndBranch) \ |
|
95 _(CompareV) \ |
|
96 _(CompareVAndBranch) \ |
|
97 _(CompareVM) \ |
|
98 _(BitAndAndBranch) \ |
|
99 _(IsNullOrLikeUndefined) \ |
|
100 _(IsNullOrLikeUndefinedAndBranch)\ |
|
101 _(EmulatesUndefined) \ |
|
102 _(EmulatesUndefinedAndBranch) \ |
|
103 _(MinMaxI) \ |
|
104 _(MinMaxD) \ |
|
105 _(NegI) \ |
|
106 _(NegD) \ |
|
107 _(NegF) \ |
|
108 _(AbsI) \ |
|
109 _(AbsD) \ |
|
110 _(AbsF) \ |
|
111 _(SqrtD) \ |
|
112 _(SqrtF) \ |
|
113 _(Atan2D) \ |
|
114 _(Hypot) \ |
|
115 _(PowI) \ |
|
116 _(PowD) \ |
|
117 _(Random) \ |
|
118 _(MathFunctionD) \ |
|
119 _(MathFunctionF) \ |
|
120 _(NotI) \ |
|
121 _(NotD) \ |
|
122 _(NotF) \ |
|
123 _(NotO) \ |
|
124 _(NotV) \ |
|
125 _(AddI) \ |
|
126 _(SubI) \ |
|
127 _(MulI) \ |
|
128 _(MathD) \ |
|
129 _(MathF) \ |
|
130 _(ModD) \ |
|
131 _(BinaryV) \ |
|
132 _(Concat) \ |
|
133 _(ConcatPar) \ |
|
134 _(CharCodeAt) \ |
|
135 _(FromCharCode) \ |
|
136 _(StringSplit) \ |
|
137 _(Int32ToDouble) \ |
|
138 _(Float32ToDouble) \ |
|
139 _(DoubleToFloat32) \ |
|
140 _(Int32ToFloat32) \ |
|
141 _(ValueToDouble) \ |
|
142 _(ValueToInt32) \ |
|
143 _(ValueToFloat32) \ |
|
144 _(DoubleToInt32) \ |
|
145 _(Float32ToInt32) \ |
|
146 _(TruncateDToInt32) \ |
|
147 _(TruncateFToInt32) \ |
|
148 _(BooleanToString) \ |
|
149 _(IntToString) \ |
|
150 _(DoubleToString) \ |
|
151 _(PrimitiveToString) \ |
|
152 _(Start) \ |
|
153 _(OsrEntry) \ |
|
154 _(OsrValue) \ |
|
155 _(OsrScopeChain) \ |
|
156 _(OsrReturnValue) \ |
|
157 _(OsrArgumentsObject) \ |
|
158 _(RegExp) \ |
|
159 _(RegExpExec) \ |
|
160 _(RegExpTest) \ |
|
161 _(RegExpReplace) \ |
|
162 _(StringReplace) \ |
|
163 _(Lambda) \ |
|
164 _(LambdaArrow) \ |
|
165 _(LambdaForSingleton) \ |
|
166 _(LambdaPar) \ |
|
167 _(ImplicitThis) \ |
|
168 _(Slots) \ |
|
169 _(Elements) \ |
|
170 _(ConvertElementsToDoubles) \ |
|
171 _(MaybeToDoubleElement) \ |
|
172 _(LoadSlotV) \ |
|
173 _(LoadSlotT) \ |
|
174 _(StoreSlotV) \ |
|
175 _(StoreSlotT) \ |
|
176 _(GuardShape) \ |
|
177 _(GuardObjectType) \ |
|
178 _(GuardObjectIdentity) \ |
|
179 _(GuardClass) \ |
|
180 _(GuardThreadExclusive) \ |
|
181 _(TypeBarrierV) \ |
|
182 _(TypeBarrierO) \ |
|
183 _(MonitorTypes) \ |
|
184 _(PostWriteBarrierO) \ |
|
185 _(PostWriteBarrierV) \ |
|
186 _(InitializedLength) \ |
|
187 _(SetInitializedLength) \ |
|
188 _(NeuterCheck) \ |
|
189 _(BoundsCheck) \ |
|
190 _(BoundsCheckRange) \ |
|
191 _(BoundsCheckLower) \ |
|
192 _(LoadElementV) \ |
|
193 _(LoadElementT) \ |
|
194 _(LoadElementHole) \ |
|
195 _(StoreElementV) \ |
|
196 _(StoreElementT) \ |
|
197 _(ArrayPopShiftV) \ |
|
198 _(ArrayPopShiftT) \ |
|
199 _(ArrayPushV) \ |
|
200 _(ArrayPushT) \ |
|
201 _(ArrayConcat) \ |
|
202 _(StoreElementHoleV) \ |
|
203 _(StoreElementHoleT) \ |
|
204 _(LoadTypedArrayElement) \ |
|
205 _(LoadTypedArrayElementHole) \ |
|
206 _(LoadTypedArrayElementStatic) \ |
|
207 _(StoreTypedArrayElement) \ |
|
208 _(StoreTypedArrayElementHole) \ |
|
209 _(StoreTypedArrayElementStatic) \ |
|
210 _(EffectiveAddress) \ |
|
211 _(ClampIToUint8) \ |
|
212 _(ClampDToUint8) \ |
|
213 _(ClampVToUint8) \ |
|
214 _(LoadFixedSlotV) \ |
|
215 _(LoadFixedSlotT) \ |
|
216 _(StoreFixedSlotV) \ |
|
217 _(StoreFixedSlotT) \ |
|
218 _(FunctionEnvironment) \ |
|
219 _(ForkJoinContext) \ |
|
220 _(ForkJoinGetSlice) \ |
|
221 _(GetPropertyCacheV) \ |
|
222 _(GetPropertyCacheT) \ |
|
223 _(GetPropertyPolymorphicV) \ |
|
224 _(GetPropertyPolymorphicT) \ |
|
225 _(GetElementCacheV) \ |
|
226 _(GetElementCacheT) \ |
|
227 _(BindNameCache) \ |
|
228 _(CallGetProperty) \ |
|
229 _(GetNameCache) \ |
|
230 _(CallGetIntrinsicValue) \ |
|
231 _(CallsiteCloneCache) \ |
|
232 _(CallGetElement) \ |
|
233 _(CallSetElement) \ |
|
234 _(CallInitElementArray) \ |
|
235 _(CallSetProperty) \ |
|
236 _(CallDeleteProperty) \ |
|
237 _(CallDeleteElement) \ |
|
238 _(SetPropertyCacheV) \ |
|
239 _(SetPropertyCacheT) \ |
|
240 _(SetElementCacheV) \ |
|
241 _(SetElementCacheT) \ |
|
242 _(SetPropertyPolymorphicV) \ |
|
243 _(SetPropertyPolymorphicT) \ |
|
244 _(CallIteratorStart) \ |
|
245 _(IteratorStart) \ |
|
246 _(IteratorNext) \ |
|
247 _(IteratorMore) \ |
|
248 _(IteratorEnd) \ |
|
249 _(ArrayLength) \ |
|
250 _(SetArrayLength) \ |
|
251 _(TypedArrayLength) \ |
|
252 _(TypedArrayElements) \ |
|
253 _(TypedObjectElements) \ |
|
254 _(SetTypedObjectOffset) \ |
|
255 _(StringLength) \ |
|
256 _(ArgumentsLength) \ |
|
257 _(GetFrameArgument) \ |
|
258 _(SetFrameArgumentT) \ |
|
259 _(SetFrameArgumentC) \ |
|
260 _(SetFrameArgumentV) \ |
|
261 _(RunOncePrologue) \ |
|
262 _(Rest) \ |
|
263 _(RestPar) \ |
|
264 _(TypeOfV) \ |
|
265 _(ToIdV) \ |
|
266 _(Floor) \ |
|
267 _(FloorF) \ |
|
268 _(Round) \ |
|
269 _(RoundF) \ |
|
270 _(In) \ |
|
271 _(InArray) \ |
|
272 _(InstanceOfO) \ |
|
273 _(InstanceOfV) \ |
|
274 _(CallInstanceOf) \ |
|
275 _(InterruptCheck) \ |
|
276 _(InterruptCheckImplicit) \ |
|
277 _(ProfilerStackOp) \ |
|
278 _(GetDOMProperty) \ |
|
279 _(GetDOMMember) \ |
|
280 _(SetDOMProperty) \ |
|
281 _(CallDOMNative) \ |
|
282 _(IsCallable) \ |
|
283 _(HaveSameClass) \ |
|
284 _(HasClass) \ |
|
285 _(AsmJSLoadHeap) \ |
|
286 _(AsmJSStoreHeap) \ |
|
287 _(AsmJSLoadGlobalVar) \ |
|
288 _(AsmJSStoreGlobalVar) \ |
|
289 _(AsmJSLoadFFIFunc) \ |
|
290 _(AsmJSParameter) \ |
|
291 _(AsmJSReturn) \ |
|
292 _(AsmJSVoidReturn) \ |
|
293 _(AsmJSPassStackArg) \ |
|
294 _(AsmJSCall) \ |
|
295 _(InterruptCheckPar) \ |
|
296 _(RecompileCheck) \ |
|
297 _(AssertRangeI) \ |
|
298 _(AssertRangeD) \ |
|
299 _(AssertRangeF) \ |
|
300 _(AssertRangeV) |
|
301 |
|
302 #if defined(JS_CODEGEN_X86) |
|
303 # include "jit/x86/LOpcodes-x86.h" |
|
304 #elif defined(JS_CODEGEN_X64) |
|
305 # include "jit/x64/LOpcodes-x64.h" |
|
306 #elif defined(JS_CODEGEN_ARM) |
|
307 # include "jit/arm/LOpcodes-arm.h" |
|
308 #elif defined(JS_CODEGEN_MIPS) |
|
309 # include "jit/mips/LOpcodes-mips.h" |
|
310 #else |
|
311 # error "Unknown architecture!" |
|
312 #endif |
|
313 |
|
314 #define LIR_OPCODE_LIST(_) \ |
|
315 LIR_COMMON_OPCODE_LIST(_) \ |
|
316 LIR_CPU_OPCODE_LIST(_) |
|
317 |
|
318 #endif /* jit_LOpcodes_h */ |