5 #ifndef V8_COMPILER_OPCODES_H_
6 #define V8_COMPILER_OPCODES_H_
9 #define INNER_CONTROL_OP_LIST(V) \
19 #define CONTROL_OP_LIST(V) \
20 INNER_CONTROL_OP_LIST(V) \
25 #define LEAF_OP_LIST(V) \
34 #define INNER_OP_LIST(V) \
46 #define COMMON_OP_LIST(V) \
51 #define JS_COMPARE_BINOP_LIST(V) \
58 V(JSLessThanOrEqual) \
59 V(JSGreaterThanOrEqual)
61 #define JS_BITWISE_BINOP_LIST(V) \
67 V(JSShiftRightLogical)
69 #define JS_ARITH_BINOP_LIST(V) \
76 #define JS_SIMPLE_BINOP_LIST(V) \
77 JS_COMPARE_BINOP_LIST(V) \
78 JS_BITWISE_BINOP_LIST(V) \
79 JS_ARITH_BINOP_LIST(V)
81 #define JS_LOGIC_UNOP_LIST(V) V(JSUnaryNot)
83 #define JS_CONVERSION_UNOP_LIST(V) \
90 #define JS_OTHER_UNOP_LIST(V) \
93 #define JS_SIMPLE_UNOP_LIST(V) \
94 JS_LOGIC_UNOP_LIST(V) \
95 JS_CONVERSION_UNOP_LIST(V) \
98 #define JS_OBJECT_OP_LIST(V) \
104 V(JSDeleteProperty) \
108 #define JS_CONTEXT_OP_LIST(V) \
111 V(JSCreateFunctionContext) \
112 V(JSCreateCatchContext) \
113 V(JSCreateWithContext) \
114 V(JSCreateBlockContext) \
115 V(JSCreateModuleContext) \
116 V(JSCreateGlobalContext)
118 #define JS_OTHER_OP_LIST(V) \
125 #define JS_OP_LIST(V) \
126 JS_SIMPLE_BINOP_LIST(V) \
127 JS_SIMPLE_UNOP_LIST(V) \
128 JS_OBJECT_OP_LIST(V) \
129 JS_CONTEXT_OP_LIST(V) \
133 #define SIMPLIFIED_OP_LIST(V) \
138 V(NumberLessThanOrEqual) \
149 V(StringLessThanOrEqual) \
151 V(ChangeTaggedToInt32) \
152 V(ChangeTaggedToUint32) \
153 V(ChangeTaggedToFloat64) \
154 V(ChangeInt32ToTagged) \
155 V(ChangeUint32ToTagged) \
156 V(ChangeFloat64ToTagged) \
165 #define MACHINE_OP_LIST(V) \
185 V(Int32AddWithOverflow) \
187 V(Int32SubWithOverflow) \
194 V(Int32LessThanOrEqual) \
196 V(Uint32LessThanOrEqual) \
205 V(Int64LessThanOrEqual) \
206 V(ChangeFloat32ToFloat64) \
207 V(ChangeFloat64ToInt32) \
208 V(ChangeFloat64ToUint32) \
209 V(ChangeInt32ToFloat64) \
210 V(ChangeInt32ToInt64) \
211 V(ChangeUint32ToFloat64) \
212 V(ChangeUint32ToUint64) \
213 V(TruncateFloat64ToFloat32) \
214 V(TruncateFloat64ToInt32) \
215 V(TruncateInt64ToInt32) \
224 V(Float64LessThanOrEqual)
226 #define VALUE_OP_LIST(V) \
228 SIMPLIFIED_OP_LIST(V) \
233 #define ALL_OP_LIST(V) \
246 #define DECLARE_OPCODE(x) k##x,
248 #undef DECLARE_OPCODE
250 #define COUNT_OPCODE(x) +1
258 #define RETURN_NAME(x) \
264 return "UnknownOpcode";
270 #define RETURN_NAME(x) \
282 #define RETURN_NAME(x) \
294 #define RETURN_NAME(x) \
static bool IsJsOpcode(Value val)
static bool IsControlOpcode(Value val)
static const char * Mnemonic(Value val)
static bool IsCommonOpcode(Value val)
Debugger support for the V8 JavaScript engine.
#define CONTROL_OP_LIST(V)
#define COMMON_OP_LIST(V)
#define DECLARE_OPCODE(x)