OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_OPCODES_H_ | 5 #ifndef V8_COMPILER_OPCODES_H_ |
6 #define V8_COMPILER_OPCODES_H_ | 6 #define V8_COMPILER_OPCODES_H_ |
7 | 7 |
8 // Opcodes for control operators. | 8 // Opcodes for control operators. |
9 #define INNER_CONTROL_OP_LIST(V) \ | |
10 V(Dead) \ | |
11 V(Loop) \ | |
12 V(Branch) \ | |
13 V(Switch) \ | |
14 V(IfTrue) \ | |
15 V(IfFalse) \ | |
16 V(IfSuccess) \ | |
17 V(IfException) \ | |
18 V(IfValue) \ | |
19 V(IfDefault) \ | |
20 V(Merge) \ | |
21 V(Deoptimize) \ | |
22 V(Return) \ | |
23 V(OsrNormalEntry) \ | |
24 V(OsrLoopEntry) \ | |
25 V(Throw) | |
26 | |
27 #define CONTROL_OP_LIST(V) \ | 9 #define CONTROL_OP_LIST(V) \ |
28 INNER_CONTROL_OP_LIST(V) \ | |
29 V(Start) \ | 10 V(Start) \ |
| 11 V(Dead) \ |
| 12 V(Loop) \ |
| 13 V(Branch) \ |
| 14 V(Switch) \ |
| 15 V(IfTrue) \ |
| 16 V(IfFalse) \ |
| 17 V(IfSuccess) \ |
| 18 V(IfException) \ |
| 19 V(IfValue) \ |
| 20 V(IfDefault) \ |
| 21 V(Merge) \ |
| 22 V(Deoptimize) \ |
| 23 V(Return) \ |
| 24 V(OsrNormalEntry) \ |
| 25 V(OsrLoopEntry) \ |
| 26 V(Throw) \ |
30 V(End) | 27 V(End) |
31 | 28 |
32 // Opcodes for constant operators. | 29 // Opcodes for constant operators. |
33 #define CONSTANT_OP_LIST(V) \ | 30 #define CONSTANT_OP_LIST(V) \ |
34 V(Int32Constant) \ | 31 V(Int32Constant) \ |
35 V(Int64Constant) \ | 32 V(Int64Constant) \ |
36 V(Float32Constant) \ | 33 V(Float32Constant) \ |
37 V(Float64Constant) \ | 34 V(Float64Constant) \ |
38 V(ExternalConstant) \ | 35 V(ExternalConstant) \ |
39 V(NumberConstant) \ | 36 V(NumberConstant) \ |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 #define COUNT_OPCODE(x) +1 | 296 #define COUNT_OPCODE(x) +1 |
300 ALL_OP_LIST(COUNT_OPCODE) | 297 ALL_OP_LIST(COUNT_OPCODE) |
301 #undef COUNT_OPCODE | 298 #undef COUNT_OPCODE |
302 }; | 299 }; |
303 | 300 |
304 // Returns the mnemonic name of an opcode. | 301 // Returns the mnemonic name of an opcode. |
305 static char const* Mnemonic(Value value); | 302 static char const* Mnemonic(Value value); |
306 | 303 |
307 // Returns true if opcode for common operator. | 304 // Returns true if opcode for common operator. |
308 static bool IsCommonOpcode(Value value) { | 305 static bool IsCommonOpcode(Value value) { |
309 return kDead <= value && value <= kAlways; | 306 return kStart <= value && value <= kAlways; |
310 } | 307 } |
311 | 308 |
312 // Returns true if opcode for control operator. | 309 // Returns true if opcode for control operator. |
313 static bool IsControlOpcode(Value value) { | 310 static bool IsControlOpcode(Value value) { |
314 return kDead <= value && value <= kEnd; | 311 return kStart <= value && value <= kEnd; |
315 } | 312 } |
316 | 313 |
317 // Returns true if opcode for JavaScript operator. | 314 // Returns true if opcode for JavaScript operator. |
318 static bool IsJsOpcode(Value value) { | 315 static bool IsJsOpcode(Value value) { |
319 return kJSEqual <= value && value <= kJSStackCheck; | 316 return kJSEqual <= value && value <= kJSStackCheck; |
320 } | 317 } |
321 | 318 |
322 // Returns true if opcode for constant operator. | 319 // Returns true if opcode for constant operator. |
323 static bool IsConstantOpcode(Value value) { | 320 static bool IsConstantOpcode(Value value) { |
324 return kInt32Constant <= value && value <= kHeapConstant; | 321 return kInt32Constant <= value && value <= kHeapConstant; |
(...skipping 17 matching lines...) Expand all Loading... |
342 (kNumberEqual <= value && value <= kStringLessThanOrEqual) || | 339 (kNumberEqual <= value && value <= kStringLessThanOrEqual) || |
343 (kWord32Equal <= value && value <= kFloat64LessThanOrEqual); | 340 (kWord32Equal <= value && value <= kFloat64LessThanOrEqual); |
344 } | 341 } |
345 }; | 342 }; |
346 | 343 |
347 } // namespace compiler | 344 } // namespace compiler |
348 } // namespace internal | 345 } // namespace internal |
349 } // namespace v8 | 346 } // namespace v8 |
350 | 347 |
351 #endif // V8_COMPILER_OPCODES_H_ | 348 #endif // V8_COMPILER_OPCODES_H_ |
OLD | NEW |