1 // This file is generated by Tools/cases_generator/uop_metadata_generator.py
2 // from:
3 // Python/bytecodes.c
4 // Do not edit!
5
6 #ifndef Py_CORE_UOP_METADATA_H
7 #define Py_CORE_UOP_METADATA_H
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #include <stdint.h>
13 #include "pycore_uop_ids.h"
14 extern const uint16_t _PyUop_Flags[MAX_UOP_ID+1];
15 extern const uint8_t _PyUop_Replication[MAX_UOP_ID+1];
16 extern const char * const _PyOpcode_uop_name[MAX_UOP_ID+1];
17
18 extern int _PyUop_num_popped(int opcode, int oparg);
19
20 #ifdef NEED_OPCODE_METADATA
21 const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
22 [_NOP] = HAS_PURE_FLAG,
23 [_RESUME_CHECK] = HAS_DEOPT_FLAG,
24 [_LOAD_FAST_CHECK] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
25 [_LOAD_FAST_0] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
26 [_LOAD_FAST_1] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
27 [_LOAD_FAST_2] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
28 [_LOAD_FAST_3] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
29 [_LOAD_FAST_4] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
30 [_LOAD_FAST_5] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
31 [_LOAD_FAST_6] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
32 [_LOAD_FAST_7] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
33 [_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG,
34 [_LOAD_FAST_AND_CLEAR] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
35 [_LOAD_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
36 [_LOAD_CONST] = HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG,
37 [_STORE_FAST_0] = HAS_LOCAL_FLAG,
38 [_STORE_FAST_1] = HAS_LOCAL_FLAG,
39 [_STORE_FAST_2] = HAS_LOCAL_FLAG,
40 [_STORE_FAST_3] = HAS_LOCAL_FLAG,
41 [_STORE_FAST_4] = HAS_LOCAL_FLAG,
42 [_STORE_FAST_5] = HAS_LOCAL_FLAG,
43 [_STORE_FAST_6] = HAS_LOCAL_FLAG,
44 [_STORE_FAST_7] = HAS_LOCAL_FLAG,
45 [_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
46 [_STORE_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
47 [_STORE_FAST_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
48 [_POP_TOP] = HAS_PURE_FLAG,
49 [_PUSH_NULL] = HAS_PURE_FLAG,
50 [_END_SEND] = HAS_PURE_FLAG,
51 [_UNARY_NEGATIVE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
52 [_UNARY_NOT] = HAS_PURE_FLAG,
53 [_TO_BOOL] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
54 [_TO_BOOL_BOOL] = HAS_EXIT_FLAG,
55 [_TO_BOOL_INT] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG,
56 [_TO_BOOL_LIST] = HAS_EXIT_FLAG,
57 [_TO_BOOL_NONE] = HAS_EXIT_FLAG,
58 [_TO_BOOL_STR] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG,
59 [_REPLACE_WITH_TRUE] = 0,
60 [_UNARY_INVERT] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
61 [_GUARD_BOTH_INT] = HAS_EXIT_FLAG,
62 [_GUARD_NOS_INT] = HAS_EXIT_FLAG,
63 [_GUARD_TOS_INT] = HAS_EXIT_FLAG,
64 [_BINARY_OP_MULTIPLY_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
65 [_BINARY_OP_ADD_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
66 [_BINARY_OP_SUBTRACT_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
67 [_GUARD_BOTH_FLOAT] = HAS_EXIT_FLAG,
68 [_GUARD_NOS_FLOAT] = HAS_EXIT_FLAG,
69 [_GUARD_TOS_FLOAT] = HAS_EXIT_FLAG,
70 [_BINARY_OP_MULTIPLY_FLOAT] = HAS_PURE_FLAG,
71 [_BINARY_OP_ADD_FLOAT] = HAS_PURE_FLAG,
72 [_BINARY_OP_SUBTRACT_FLOAT] = HAS_PURE_FLAG,
73 [_GUARD_BOTH_UNICODE] = HAS_EXIT_FLAG,
74 [_BINARY_OP_ADD_UNICODE] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
75 [_BINARY_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
76 [_BINARY_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
77 [_STORE_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
78 [_BINARY_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG,
79 [_BINARY_SUBSCR_STR_INT] = HAS_DEOPT_FLAG,
80 [_BINARY_SUBSCR_TUPLE_INT] = HAS_DEOPT_FLAG,
81 [_BINARY_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
82 [_LIST_APPEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
83 [_SET_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
84 [_STORE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
85 [_STORE_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG,
86 [_STORE_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
87 [_DELETE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
88 [_CALL_INTRINSIC_1] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
89 [_CALL_INTRINSIC_2] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
90 [_POP_FRAME] = 0,
91 [_GET_AITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
92 [_GET_ANEXT] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
93 [_GET_AWAITABLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
94 [_YIELD_VALUE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
95 [_POP_EXCEPT] = HAS_ESCAPES_FLAG,
96 [_LOAD_ASSERTION_ERROR] = 0,
97 [_LOAD_BUILD_CLASS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
98 [_STORE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
99 [_DELETE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
100 [_UNPACK_SEQUENCE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
101 [_UNPACK_SEQUENCE_TWO_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
102 [_UNPACK_SEQUENCE_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
103 [_UNPACK_SEQUENCE_LIST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
104 [_UNPACK_EX] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
105 [_STORE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
106 [_DELETE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
107 [_STORE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
108 [_DELETE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
109 [_LOAD_LOCALS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
110 [_LOAD_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
111 [_GUARD_GLOBALS_VERSION] = HAS_DEOPT_FLAG,
112 [_GUARD_BUILTINS_VERSION] = HAS_DEOPT_FLAG,
113 [_LOAD_GLOBAL_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
114 [_LOAD_GLOBAL_BUILTINS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
115 [_DELETE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
116 [_MAKE_CELL] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG,
117 [_DELETE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
118 [_LOAD_FROM_DICT_OR_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
119 [_LOAD_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
120 [_STORE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ESCAPES_FLAG,
121 [_COPY_FREE_VARS] = HAS_ARG_FLAG,
122 [_BUILD_STRING] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
123 [_BUILD_TUPLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
124 [_BUILD_LIST] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
125 [_LIST_EXTEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
126 [_SET_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
127 [_BUILD_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
128 [_SETUP_ANNOTATIONS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
129 [_BUILD_CONST_KEY_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
130 [_DICT_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
131 [_DICT_MERGE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
132 [_MAP_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
133 [_LOAD_SUPER_ATTR_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
134 [_LOAD_SUPER_ATTR_METHOD] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
135 [_LOAD_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
136 [_GUARD_TYPE_VERSION] = HAS_EXIT_FLAG,
137 [_CHECK_MANAGED_OBJECT_HAS_VALUES] = HAS_DEOPT_FLAG,
138 [_LOAD_ATTR_INSTANCE_VALUE_0] = HAS_DEOPT_FLAG,
139 [_LOAD_ATTR_INSTANCE_VALUE_1] = HAS_DEOPT_FLAG,
140 [_LOAD_ATTR_INSTANCE_VALUE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG,
141 [_CHECK_ATTR_MODULE] = HAS_DEOPT_FLAG,
142 [_LOAD_ATTR_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
143 [_CHECK_ATTR_WITH_HINT] = HAS_DEOPT_FLAG,
144 [_LOAD_ATTR_WITH_HINT] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG,
145 [_LOAD_ATTR_SLOT_0] = HAS_DEOPT_FLAG,
146 [_LOAD_ATTR_SLOT_1] = HAS_DEOPT_FLAG,
147 [_LOAD_ATTR_SLOT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG,
148 [_CHECK_ATTR_CLASS] = HAS_DEOPT_FLAG,
149 [_LOAD_ATTR_CLASS_0] = 0,
150 [_LOAD_ATTR_CLASS_1] = 0,
151 [_LOAD_ATTR_CLASS] = HAS_ARG_FLAG | HAS_OPARG_AND_1_FLAG,
152 [_GUARD_DORV_NO_DICT] = HAS_DEOPT_FLAG,
153 [_STORE_ATTR_INSTANCE_VALUE] = 0,
154 [_STORE_ATTR_SLOT] = 0,
155 [_COMPARE_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
156 [_COMPARE_OP_FLOAT] = HAS_ARG_FLAG,
157 [_COMPARE_OP_INT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
158 [_COMPARE_OP_STR] = HAS_ARG_FLAG,
159 [_IS_OP] = HAS_ARG_FLAG,
160 [_CONTAINS_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
161 [_CONTAINS_OP_SET] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
162 [_CONTAINS_OP_DICT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
163 [_CHECK_EG_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
164 [_CHECK_EXC_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
165 [_IS_NONE] = 0,
166 [_GET_LEN] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
167 [_MATCH_CLASS] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
168 [_MATCH_MAPPING] = 0,
169 [_MATCH_SEQUENCE] = 0,
170 [_MATCH_KEYS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
171 [_GET_ITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
172 [_GET_YIELD_FROM_ITER] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
173 [_FOR_ITER_TIER_TWO] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
174 [_ITER_CHECK_LIST] = HAS_EXIT_FLAG,
175 [_GUARD_NOT_EXHAUSTED_LIST] = HAS_EXIT_FLAG,
176 [_ITER_NEXT_LIST] = 0,
177 [_ITER_CHECK_TUPLE] = HAS_EXIT_FLAG,
178 [_GUARD_NOT_EXHAUSTED_TUPLE] = HAS_EXIT_FLAG,
179 [_ITER_NEXT_TUPLE] = 0,
180 [_ITER_CHECK_RANGE] = HAS_EXIT_FLAG,
181 [_GUARD_NOT_EXHAUSTED_RANGE] = HAS_EXIT_FLAG,
182 [_ITER_NEXT_RANGE] = HAS_ERROR_FLAG,
183 [_FOR_ITER_GEN_FRAME] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
184 [_WITH_EXCEPT_START] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
185 [_PUSH_EXC_INFO] = 0,
186 [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = HAS_DEOPT_FLAG,
187 [_GUARD_KEYS_VERSION] = HAS_DEOPT_FLAG,
188 [_LOAD_ATTR_METHOD_WITH_VALUES] = HAS_ARG_FLAG,
189 [_LOAD_ATTR_METHOD_NO_DICT] = HAS_ARG_FLAG,
190 [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = HAS_ARG_FLAG,
191 [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = HAS_ARG_FLAG,
192 [_CHECK_ATTR_METHOD_LAZY_DICT] = HAS_DEOPT_FLAG,
193 [_LOAD_ATTR_METHOD_LAZY_DICT] = HAS_ARG_FLAG,
194 [_CHECK_PERIODIC] = HAS_EVAL_BREAK_FLAG,
195 [_PY_FRAME_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
196 [_CHECK_FUNCTION_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
197 [_CHECK_METHOD_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
198 [_EXPAND_METHOD] = HAS_ARG_FLAG,
199 [_CHECK_IS_NOT_PY_CALLABLE] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
200 [_CALL_NON_PY_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
201 [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
202 [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG,
203 [_CHECK_PEP_523] = HAS_DEOPT_FLAG,
204 [_CHECK_FUNCTION_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
205 [_CHECK_STACK_SPACE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
206 [_INIT_CALL_PY_EXACT_ARGS_0] = HAS_PURE_FLAG,
207 [_INIT_CALL_PY_EXACT_ARGS_1] = HAS_PURE_FLAG,
208 [_INIT_CALL_PY_EXACT_ARGS_2] = HAS_PURE_FLAG,
209 [_INIT_CALL_PY_EXACT_ARGS_3] = HAS_PURE_FLAG,
210 [_INIT_CALL_PY_EXACT_ARGS_4] = HAS_PURE_FLAG,
211 [_INIT_CALL_PY_EXACT_ARGS] = HAS_ARG_FLAG | HAS_PURE_FLAG,
212 [_PUSH_FRAME] = 0,
213 [_CALL_TYPE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
214 [_CALL_STR_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
215 [_CALL_TUPLE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
216 [_EXIT_INIT_CHECK] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
217 [_CALL_BUILTIN_CLASS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
218 [_CALL_BUILTIN_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
219 [_CALL_BUILTIN_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
220 [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
221 [_CALL_LEN] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
222 [_CALL_ISINSTANCE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
223 [_CALL_METHOD_DESCRIPTOR_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
224 [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
225 [_CALL_METHOD_DESCRIPTOR_NOARGS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
226 [_CALL_METHOD_DESCRIPTOR_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
227 [_MAKE_FUNCTION] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
228 [_SET_FUNCTION_ATTRIBUTE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
229 [_RETURN_GENERATOR] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
230 [_BUILD_SLICE] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
231 [_CONVERT_VALUE] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
232 [_FORMAT_SIMPLE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
233 [_FORMAT_WITH_SPEC] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
234 [_COPY] = HAS_ARG_FLAG | HAS_PURE_FLAG,
235 [_BINARY_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
236 [_SWAP] = HAS_ARG_FLAG | HAS_PURE_FLAG,
237 [_GUARD_IS_TRUE_POP] = HAS_EXIT_FLAG,
238 [_GUARD_IS_FALSE_POP] = HAS_EXIT_FLAG,
239 [_GUARD_IS_NONE_POP] = HAS_EXIT_FLAG,
240 [_GUARD_IS_NOT_NONE_POP] = HAS_EXIT_FLAG,
241 [_JUMP_TO_TOP] = 0,
242 [_SET_IP] = 0,
243 [_CHECK_STACK_SPACE_OPERAND] = HAS_DEOPT_FLAG,
244 [_SAVE_RETURN_OFFSET] = HAS_ARG_FLAG,
245 [_EXIT_TRACE] = 0,
246 [_CHECK_VALIDITY] = HAS_DEOPT_FLAG,
247 [_LOAD_CONST_INLINE] = HAS_PURE_FLAG,
248 [_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG,
249 [_POP_TOP_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG,
250 [_LOAD_CONST_INLINE_WITH_NULL] = HAS_PURE_FLAG,
251 [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = HAS_PURE_FLAG,
252 [_CHECK_FUNCTION] = HAS_DEOPT_FLAG,
253 [_INTERNAL_INCREMENT_OPT_COUNTER] = 0,
254 [_COLD_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
255 [_DYNAMIC_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
256 [_START_EXECUTOR] = HAS_DEOPT_FLAG,
257 [_FATAL_ERROR] = 0,
258 [_CHECK_VALIDITY_AND_SET_IP] = HAS_DEOPT_FLAG,
259 [_DEOPT] = 0,
260 [_ERROR_POP_N] = HAS_ARG_FLAG,
261 [_TIER2_RESUME_CHECK] = HAS_DEOPT_FLAG,
262 };
263
264 const uint8_t _PyUop_Replication[MAX_UOP_ID+1] = {
265 [_LOAD_FAST] = 8,
266 [_STORE_FAST] = 8,
267 [_INIT_CALL_PY_EXACT_ARGS] = 5,
268 };
269
270 const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = {
271 [_BINARY_OP] = "_BINARY_OP",
272 [_BINARY_OP_ADD_FLOAT] = "_BINARY_OP_ADD_FLOAT",
273 [_BINARY_OP_ADD_INT] = "_BINARY_OP_ADD_INT",
274 [_BINARY_OP_ADD_UNICODE] = "_BINARY_OP_ADD_UNICODE",
275 [_BINARY_OP_MULTIPLY_FLOAT] = "_BINARY_OP_MULTIPLY_FLOAT",
276 [_BINARY_OP_MULTIPLY_INT] = "_BINARY_OP_MULTIPLY_INT",
277 [_BINARY_OP_SUBTRACT_FLOAT] = "_BINARY_OP_SUBTRACT_FLOAT",
278 [_BINARY_OP_SUBTRACT_INT] = "_BINARY_OP_SUBTRACT_INT",
279 [_BINARY_SLICE] = "_BINARY_SLICE",
280 [_BINARY_SUBSCR] = "_BINARY_SUBSCR",
281 [_BINARY_SUBSCR_DICT] = "_BINARY_SUBSCR_DICT",
282 [_BINARY_SUBSCR_LIST_INT] = "_BINARY_SUBSCR_LIST_INT",
283 [_BINARY_SUBSCR_STR_INT] = "_BINARY_SUBSCR_STR_INT",
284 [_BINARY_SUBSCR_TUPLE_INT] = "_BINARY_SUBSCR_TUPLE_INT",
285 [_BUILD_CONST_KEY_MAP] = "_BUILD_CONST_KEY_MAP",
286 [_BUILD_LIST] = "_BUILD_LIST",
287 [_BUILD_MAP] = "_BUILD_MAP",
288 [_BUILD_SLICE] = "_BUILD_SLICE",
289 [_BUILD_STRING] = "_BUILD_STRING",
290 [_BUILD_TUPLE] = "_BUILD_TUPLE",
291 [_CALL_BUILTIN_CLASS] = "_CALL_BUILTIN_CLASS",
292 [_CALL_BUILTIN_FAST] = "_CALL_BUILTIN_FAST",
293 [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = "_CALL_BUILTIN_FAST_WITH_KEYWORDS",
294 [_CALL_BUILTIN_O] = "_CALL_BUILTIN_O",
295 [_CALL_INTRINSIC_1] = "_CALL_INTRINSIC_1",
296 [_CALL_INTRINSIC_2] = "_CALL_INTRINSIC_2",
297 [_CALL_ISINSTANCE] = "_CALL_ISINSTANCE",
298 [_CALL_LEN] = "_CALL_LEN",
299 [_CALL_METHOD_DESCRIPTOR_FAST] = "_CALL_METHOD_DESCRIPTOR_FAST",
300 [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS",
301 [_CALL_METHOD_DESCRIPTOR_NOARGS] = "_CALL_METHOD_DESCRIPTOR_NOARGS",
302 [_CALL_METHOD_DESCRIPTOR_O] = "_CALL_METHOD_DESCRIPTOR_O",
303 [_CALL_NON_PY_GENERAL] = "_CALL_NON_PY_GENERAL",
304 [_CALL_STR_1] = "_CALL_STR_1",
305 [_CALL_TUPLE_1] = "_CALL_TUPLE_1",
306 [_CALL_TYPE_1] = "_CALL_TYPE_1",
307 [_CHECK_ATTR_CLASS] = "_CHECK_ATTR_CLASS",
308 [_CHECK_ATTR_METHOD_LAZY_DICT] = "_CHECK_ATTR_METHOD_LAZY_DICT",
309 [_CHECK_ATTR_MODULE] = "_CHECK_ATTR_MODULE",
310 [_CHECK_ATTR_WITH_HINT] = "_CHECK_ATTR_WITH_HINT",
311 [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = "_CHECK_CALL_BOUND_METHOD_EXACT_ARGS",
312 [_CHECK_EG_MATCH] = "_CHECK_EG_MATCH",
313 [_CHECK_EXC_MATCH] = "_CHECK_EXC_MATCH",
314 [_CHECK_FUNCTION] = "_CHECK_FUNCTION",
315 [_CHECK_FUNCTION_EXACT_ARGS] = "_CHECK_FUNCTION_EXACT_ARGS",
316 [_CHECK_FUNCTION_VERSION] = "_CHECK_FUNCTION_VERSION",
317 [_CHECK_IS_NOT_PY_CALLABLE] = "_CHECK_IS_NOT_PY_CALLABLE",
318 [_CHECK_MANAGED_OBJECT_HAS_VALUES] = "_CHECK_MANAGED_OBJECT_HAS_VALUES",
319 [_CHECK_METHOD_VERSION] = "_CHECK_METHOD_VERSION",
320 [_CHECK_PEP_523] = "_CHECK_PEP_523",
321 [_CHECK_PERIODIC] = "_CHECK_PERIODIC",
322 [_CHECK_STACK_SPACE] = "_CHECK_STACK_SPACE",
323 [_CHECK_STACK_SPACE_OPERAND] = "_CHECK_STACK_SPACE_OPERAND",
324 [_CHECK_VALIDITY] = "_CHECK_VALIDITY",
325 [_CHECK_VALIDITY_AND_SET_IP] = "_CHECK_VALIDITY_AND_SET_IP",
326 [_COLD_EXIT] = "_COLD_EXIT",
327 [_COMPARE_OP] = "_COMPARE_OP",
328 [_COMPARE_OP_FLOAT] = "_COMPARE_OP_FLOAT",
329 [_COMPARE_OP_INT] = "_COMPARE_OP_INT",
330 [_COMPARE_OP_STR] = "_COMPARE_OP_STR",
331 [_CONTAINS_OP] = "_CONTAINS_OP",
332 [_CONTAINS_OP_DICT] = "_CONTAINS_OP_DICT",
333 [_CONTAINS_OP_SET] = "_CONTAINS_OP_SET",
334 [_CONVERT_VALUE] = "_CONVERT_VALUE",
335 [_COPY] = "_COPY",
336 [_COPY_FREE_VARS] = "_COPY_FREE_VARS",
337 [_DELETE_ATTR] = "_DELETE_ATTR",
338 [_DELETE_DEREF] = "_DELETE_DEREF",
339 [_DELETE_FAST] = "_DELETE_FAST",
340 [_DELETE_GLOBAL] = "_DELETE_GLOBAL",
341 [_DELETE_NAME] = "_DELETE_NAME",
342 [_DELETE_SUBSCR] = "_DELETE_SUBSCR",
343 [_DEOPT] = "_DEOPT",
344 [_DICT_MERGE] = "_DICT_MERGE",
345 [_DICT_UPDATE] = "_DICT_UPDATE",
346 [_DYNAMIC_EXIT] = "_DYNAMIC_EXIT",
347 [_END_SEND] = "_END_SEND",
348 [_ERROR_POP_N] = "_ERROR_POP_N",
349 [_EXIT_INIT_CHECK] = "_EXIT_INIT_CHECK",
350 [_EXIT_TRACE] = "_EXIT_TRACE",
351 [_EXPAND_METHOD] = "_EXPAND_METHOD",
352 [_FATAL_ERROR] = "_FATAL_ERROR",
353 [_FORMAT_SIMPLE] = "_FORMAT_SIMPLE",
354 [_FORMAT_WITH_SPEC] = "_FORMAT_WITH_SPEC",
355 [_FOR_ITER_GEN_FRAME] = "_FOR_ITER_GEN_FRAME",
356 [_FOR_ITER_TIER_TWO] = "_FOR_ITER_TIER_TWO",
357 [_GET_AITER] = "_GET_AITER",
358 [_GET_ANEXT] = "_GET_ANEXT",
359 [_GET_AWAITABLE] = "_GET_AWAITABLE",
360 [_GET_ITER] = "_GET_ITER",
361 [_GET_LEN] = "_GET_LEN",
362 [_GET_YIELD_FROM_ITER] = "_GET_YIELD_FROM_ITER",
363 [_GUARD_BOTH_FLOAT] = "_GUARD_BOTH_FLOAT",
364 [_GUARD_BOTH_INT] = "_GUARD_BOTH_INT",
365 [_GUARD_BOTH_UNICODE] = "_GUARD_BOTH_UNICODE",
366 [_GUARD_BUILTINS_VERSION] = "_GUARD_BUILTINS_VERSION",
367 [_GUARD_DORV_NO_DICT] = "_GUARD_DORV_NO_DICT",
368 [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = "_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT",
369 [_GUARD_GLOBALS_VERSION] = "_GUARD_GLOBALS_VERSION",
370 [_GUARD_IS_FALSE_POP] = "_GUARD_IS_FALSE_POP",
371 [_GUARD_IS_NONE_POP] = "_GUARD_IS_NONE_POP",
372 [_GUARD_IS_NOT_NONE_POP] = "_GUARD_IS_NOT_NONE_POP",
373 [_GUARD_IS_TRUE_POP] = "_GUARD_IS_TRUE_POP",
374 [_GUARD_KEYS_VERSION] = "_GUARD_KEYS_VERSION",
375 [_GUARD_NOS_FLOAT] = "_GUARD_NOS_FLOAT",
376 [_GUARD_NOS_INT] = "_GUARD_NOS_INT",
377 [_GUARD_NOT_EXHAUSTED_LIST] = "_GUARD_NOT_EXHAUSTED_LIST",
378 [_GUARD_NOT_EXHAUSTED_RANGE] = "_GUARD_NOT_EXHAUSTED_RANGE",
379 [_GUARD_NOT_EXHAUSTED_TUPLE] = "_GUARD_NOT_EXHAUSTED_TUPLE",
380 [_GUARD_TOS_FLOAT] = "_GUARD_TOS_FLOAT",
381 [_GUARD_TOS_INT] = "_GUARD_TOS_INT",
382 [_GUARD_TYPE_VERSION] = "_GUARD_TYPE_VERSION",
383 [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = "_INIT_CALL_BOUND_METHOD_EXACT_ARGS",
384 [_INIT_CALL_PY_EXACT_ARGS] = "_INIT_CALL_PY_EXACT_ARGS",
385 [_INIT_CALL_PY_EXACT_ARGS_0] = "_INIT_CALL_PY_EXACT_ARGS_0",
386 [_INIT_CALL_PY_EXACT_ARGS_1] = "_INIT_CALL_PY_EXACT_ARGS_1",
387 [_INIT_CALL_PY_EXACT_ARGS_2] = "_INIT_CALL_PY_EXACT_ARGS_2",
388 [_INIT_CALL_PY_EXACT_ARGS_3] = "_INIT_CALL_PY_EXACT_ARGS_3",
389 [_INIT_CALL_PY_EXACT_ARGS_4] = "_INIT_CALL_PY_EXACT_ARGS_4",
390 [_INTERNAL_INCREMENT_OPT_COUNTER] = "_INTERNAL_INCREMENT_OPT_COUNTER",
391 [_IS_NONE] = "_IS_NONE",
392 [_IS_OP] = "_IS_OP",
393 [_ITER_CHECK_LIST] = "_ITER_CHECK_LIST",
394 [_ITER_CHECK_RANGE] = "_ITER_CHECK_RANGE",
395 [_ITER_CHECK_TUPLE] = "_ITER_CHECK_TUPLE",
396 [_ITER_NEXT_LIST] = "_ITER_NEXT_LIST",
397 [_ITER_NEXT_RANGE] = "_ITER_NEXT_RANGE",
398 [_ITER_NEXT_TUPLE] = "_ITER_NEXT_TUPLE",
399 [_JUMP_TO_TOP] = "_JUMP_TO_TOP",
400 [_LIST_APPEND] = "_LIST_APPEND",
401 [_LIST_EXTEND] = "_LIST_EXTEND",
402 [_LOAD_ASSERTION_ERROR] = "_LOAD_ASSERTION_ERROR",
403 [_LOAD_ATTR] = "_LOAD_ATTR",
404 [_LOAD_ATTR_CLASS] = "_LOAD_ATTR_CLASS",
405 [_LOAD_ATTR_CLASS_0] = "_LOAD_ATTR_CLASS_0",
406 [_LOAD_ATTR_CLASS_1] = "_LOAD_ATTR_CLASS_1",
407 [_LOAD_ATTR_INSTANCE_VALUE] = "_LOAD_ATTR_INSTANCE_VALUE",
408 [_LOAD_ATTR_INSTANCE_VALUE_0] = "_LOAD_ATTR_INSTANCE_VALUE_0",
409 [_LOAD_ATTR_INSTANCE_VALUE_1] = "_LOAD_ATTR_INSTANCE_VALUE_1",
410 [_LOAD_ATTR_METHOD_LAZY_DICT] = "_LOAD_ATTR_METHOD_LAZY_DICT",
411 [_LOAD_ATTR_METHOD_NO_DICT] = "_LOAD_ATTR_METHOD_NO_DICT",
412 [_LOAD_ATTR_METHOD_WITH_VALUES] = "_LOAD_ATTR_METHOD_WITH_VALUES",
413 [_LOAD_ATTR_MODULE] = "_LOAD_ATTR_MODULE",
414 [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "_LOAD_ATTR_NONDESCRIPTOR_NO_DICT",
415 [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES",
416 [_LOAD_ATTR_SLOT] = "_LOAD_ATTR_SLOT",
417 [_LOAD_ATTR_SLOT_0] = "_LOAD_ATTR_SLOT_0",
418 [_LOAD_ATTR_SLOT_1] = "_LOAD_ATTR_SLOT_1",
419 [_LOAD_ATTR_WITH_HINT] = "_LOAD_ATTR_WITH_HINT",
420 [_LOAD_BUILD_CLASS] = "_LOAD_BUILD_CLASS",
421 [_LOAD_CONST] = "_LOAD_CONST",
422 [_LOAD_CONST_INLINE] = "_LOAD_CONST_INLINE",
423 [_LOAD_CONST_INLINE_BORROW] = "_LOAD_CONST_INLINE_BORROW",
424 [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = "_LOAD_CONST_INLINE_BORROW_WITH_NULL",
425 [_LOAD_CONST_INLINE_WITH_NULL] = "_LOAD_CONST_INLINE_WITH_NULL",
426 [_LOAD_DEREF] = "_LOAD_DEREF",
427 [_LOAD_FAST] = "_LOAD_FAST",
428 [_LOAD_FAST_0] = "_LOAD_FAST_0",
429 [_LOAD_FAST_1] = "_LOAD_FAST_1",
430 [_LOAD_FAST_2] = "_LOAD_FAST_2",
431 [_LOAD_FAST_3] = "_LOAD_FAST_3",
432 [_LOAD_FAST_4] = "_LOAD_FAST_4",
433 [_LOAD_FAST_5] = "_LOAD_FAST_5",
434 [_LOAD_FAST_6] = "_LOAD_FAST_6",
435 [_LOAD_FAST_7] = "_LOAD_FAST_7",
436 [_LOAD_FAST_AND_CLEAR] = "_LOAD_FAST_AND_CLEAR",
437 [_LOAD_FAST_CHECK] = "_LOAD_FAST_CHECK",
438 [_LOAD_FAST_LOAD_FAST] = "_LOAD_FAST_LOAD_FAST",
439 [_LOAD_FROM_DICT_OR_DEREF] = "_LOAD_FROM_DICT_OR_DEREF",
440 [_LOAD_GLOBAL] = "_LOAD_GLOBAL",
441 [_LOAD_GLOBAL_BUILTINS] = "_LOAD_GLOBAL_BUILTINS",
442 [_LOAD_GLOBAL_MODULE] = "_LOAD_GLOBAL_MODULE",
443 [_LOAD_LOCALS] = "_LOAD_LOCALS",
444 [_LOAD_SUPER_ATTR_ATTR] = "_LOAD_SUPER_ATTR_ATTR",
445 [_LOAD_SUPER_ATTR_METHOD] = "_LOAD_SUPER_ATTR_METHOD",
446 [_MAKE_CELL] = "_MAKE_CELL",
447 [_MAKE_FUNCTION] = "_MAKE_FUNCTION",
448 [_MAP_ADD] = "_MAP_ADD",
449 [_MATCH_CLASS] = "_MATCH_CLASS",
450 [_MATCH_KEYS] = "_MATCH_KEYS",
451 [_MATCH_MAPPING] = "_MATCH_MAPPING",
452 [_MATCH_SEQUENCE] = "_MATCH_SEQUENCE",
453 [_NOP] = "_NOP",
454 [_POP_EXCEPT] = "_POP_EXCEPT",
455 [_POP_FRAME] = "_POP_FRAME",
456 [_POP_TOP] = "_POP_TOP",
457 [_POP_TOP_LOAD_CONST_INLINE_BORROW] = "_POP_TOP_LOAD_CONST_INLINE_BORROW",
458 [_PUSH_EXC_INFO] = "_PUSH_EXC_INFO",
459 [_PUSH_FRAME] = "_PUSH_FRAME",
460 [_PUSH_NULL] = "_PUSH_NULL",
461 [_PY_FRAME_GENERAL] = "_PY_FRAME_GENERAL",
462 [_REPLACE_WITH_TRUE] = "_REPLACE_WITH_TRUE",
463 [_RESUME_CHECK] = "_RESUME_CHECK",
464 [_RETURN_GENERATOR] = "_RETURN_GENERATOR",
465 [_SAVE_RETURN_OFFSET] = "_SAVE_RETURN_OFFSET",
466 [_SETUP_ANNOTATIONS] = "_SETUP_ANNOTATIONS",
467 [_SET_ADD] = "_SET_ADD",
468 [_SET_FUNCTION_ATTRIBUTE] = "_SET_FUNCTION_ATTRIBUTE",
469 [_SET_IP] = "_SET_IP",
470 [_SET_UPDATE] = "_SET_UPDATE",
471 [_START_EXECUTOR] = "_START_EXECUTOR",
472 [_STORE_ATTR] = "_STORE_ATTR",
473 [_STORE_ATTR_INSTANCE_VALUE] = "_STORE_ATTR_INSTANCE_VALUE",
474 [_STORE_ATTR_SLOT] = "_STORE_ATTR_SLOT",
475 [_STORE_DEREF] = "_STORE_DEREF",
476 [_STORE_FAST] = "_STORE_FAST",
477 [_STORE_FAST_0] = "_STORE_FAST_0",
478 [_STORE_FAST_1] = "_STORE_FAST_1",
479 [_STORE_FAST_2] = "_STORE_FAST_2",
480 [_STORE_FAST_3] = "_STORE_FAST_3",
481 [_STORE_FAST_4] = "_STORE_FAST_4",
482 [_STORE_FAST_5] = "_STORE_FAST_5",
483 [_STORE_FAST_6] = "_STORE_FAST_6",
484 [_STORE_FAST_7] = "_STORE_FAST_7",
485 [_STORE_FAST_LOAD_FAST] = "_STORE_FAST_LOAD_FAST",
486 [_STORE_FAST_STORE_FAST] = "_STORE_FAST_STORE_FAST",
487 [_STORE_GLOBAL] = "_STORE_GLOBAL",
488 [_STORE_NAME] = "_STORE_NAME",
489 [_STORE_SLICE] = "_STORE_SLICE",
490 [_STORE_SUBSCR] = "_STORE_SUBSCR",
491 [_STORE_SUBSCR_DICT] = "_STORE_SUBSCR_DICT",
492 [_STORE_SUBSCR_LIST_INT] = "_STORE_SUBSCR_LIST_INT",
493 [_SWAP] = "_SWAP",
494 [_TIER2_RESUME_CHECK] = "_TIER2_RESUME_CHECK",
495 [_TO_BOOL] = "_TO_BOOL",
496 [_TO_BOOL_BOOL] = "_TO_BOOL_BOOL",
497 [_TO_BOOL_INT] = "_TO_BOOL_INT",
498 [_TO_BOOL_LIST] = "_TO_BOOL_LIST",
499 [_TO_BOOL_NONE] = "_TO_BOOL_NONE",
500 [_TO_BOOL_STR] = "_TO_BOOL_STR",
501 [_UNARY_INVERT] = "_UNARY_INVERT",
502 [_UNARY_NEGATIVE] = "_UNARY_NEGATIVE",
503 [_UNARY_NOT] = "_UNARY_NOT",
504 [_UNPACK_EX] = "_UNPACK_EX",
505 [_UNPACK_SEQUENCE] = "_UNPACK_SEQUENCE",
506 [_UNPACK_SEQUENCE_LIST] = "_UNPACK_SEQUENCE_LIST",
507 [_UNPACK_SEQUENCE_TUPLE] = "_UNPACK_SEQUENCE_TUPLE",
508 [_UNPACK_SEQUENCE_TWO_TUPLE] = "_UNPACK_SEQUENCE_TWO_TUPLE",
509 [_WITH_EXCEPT_START] = "_WITH_EXCEPT_START",
510 [_YIELD_VALUE] = "_YIELD_VALUE",
511 };
_PyUop_num_popped(int opcode,int oparg)512 int _PyUop_num_popped(int opcode, int oparg)
513 {
514 switch(opcode) {
515 case _NOP:
516 return 0;
517 case _RESUME_CHECK:
518 return 0;
519 case _LOAD_FAST_CHECK:
520 return 0;
521 case _LOAD_FAST_0:
522 return 0;
523 case _LOAD_FAST_1:
524 return 0;
525 case _LOAD_FAST_2:
526 return 0;
527 case _LOAD_FAST_3:
528 return 0;
529 case _LOAD_FAST_4:
530 return 0;
531 case _LOAD_FAST_5:
532 return 0;
533 case _LOAD_FAST_6:
534 return 0;
535 case _LOAD_FAST_7:
536 return 0;
537 case _LOAD_FAST:
538 return 0;
539 case _LOAD_FAST_AND_CLEAR:
540 return 0;
541 case _LOAD_FAST_LOAD_FAST:
542 return 0;
543 case _LOAD_CONST:
544 return 0;
545 case _STORE_FAST_0:
546 return 1;
547 case _STORE_FAST_1:
548 return 1;
549 case _STORE_FAST_2:
550 return 1;
551 case _STORE_FAST_3:
552 return 1;
553 case _STORE_FAST_4:
554 return 1;
555 case _STORE_FAST_5:
556 return 1;
557 case _STORE_FAST_6:
558 return 1;
559 case _STORE_FAST_7:
560 return 1;
561 case _STORE_FAST:
562 return 1;
563 case _STORE_FAST_LOAD_FAST:
564 return 1;
565 case _STORE_FAST_STORE_FAST:
566 return 2;
567 case _POP_TOP:
568 return 1;
569 case _PUSH_NULL:
570 return 0;
571 case _END_SEND:
572 return 2;
573 case _UNARY_NEGATIVE:
574 return 1;
575 case _UNARY_NOT:
576 return 1;
577 case _TO_BOOL:
578 return 1;
579 case _TO_BOOL_BOOL:
580 return 1;
581 case _TO_BOOL_INT:
582 return 1;
583 case _TO_BOOL_LIST:
584 return 1;
585 case _TO_BOOL_NONE:
586 return 1;
587 case _TO_BOOL_STR:
588 return 1;
589 case _REPLACE_WITH_TRUE:
590 return 1;
591 case _UNARY_INVERT:
592 return 1;
593 case _GUARD_BOTH_INT:
594 return 2;
595 case _GUARD_NOS_INT:
596 return 2;
597 case _GUARD_TOS_INT:
598 return 1;
599 case _BINARY_OP_MULTIPLY_INT:
600 return 2;
601 case _BINARY_OP_ADD_INT:
602 return 2;
603 case _BINARY_OP_SUBTRACT_INT:
604 return 2;
605 case _GUARD_BOTH_FLOAT:
606 return 2;
607 case _GUARD_NOS_FLOAT:
608 return 2;
609 case _GUARD_TOS_FLOAT:
610 return 1;
611 case _BINARY_OP_MULTIPLY_FLOAT:
612 return 2;
613 case _BINARY_OP_ADD_FLOAT:
614 return 2;
615 case _BINARY_OP_SUBTRACT_FLOAT:
616 return 2;
617 case _GUARD_BOTH_UNICODE:
618 return 2;
619 case _BINARY_OP_ADD_UNICODE:
620 return 2;
621 case _BINARY_SUBSCR:
622 return 2;
623 case _BINARY_SLICE:
624 return 3;
625 case _STORE_SLICE:
626 return 4;
627 case _BINARY_SUBSCR_LIST_INT:
628 return 2;
629 case _BINARY_SUBSCR_STR_INT:
630 return 2;
631 case _BINARY_SUBSCR_TUPLE_INT:
632 return 2;
633 case _BINARY_SUBSCR_DICT:
634 return 2;
635 case _LIST_APPEND:
636 return 2 + (oparg-1);
637 case _SET_ADD:
638 return 2 + (oparg-1);
639 case _STORE_SUBSCR:
640 return 3;
641 case _STORE_SUBSCR_LIST_INT:
642 return 3;
643 case _STORE_SUBSCR_DICT:
644 return 3;
645 case _DELETE_SUBSCR:
646 return 2;
647 case _CALL_INTRINSIC_1:
648 return 1;
649 case _CALL_INTRINSIC_2:
650 return 2;
651 case _POP_FRAME:
652 return 1;
653 case _GET_AITER:
654 return 1;
655 case _GET_ANEXT:
656 return 1;
657 case _GET_AWAITABLE:
658 return 1;
659 case _YIELD_VALUE:
660 return 1;
661 case _POP_EXCEPT:
662 return 1;
663 case _LOAD_ASSERTION_ERROR:
664 return 0;
665 case _LOAD_BUILD_CLASS:
666 return 0;
667 case _STORE_NAME:
668 return 1;
669 case _DELETE_NAME:
670 return 0;
671 case _UNPACK_SEQUENCE:
672 return 1;
673 case _UNPACK_SEQUENCE_TWO_TUPLE:
674 return 1;
675 case _UNPACK_SEQUENCE_TUPLE:
676 return 1;
677 case _UNPACK_SEQUENCE_LIST:
678 return 1;
679 case _UNPACK_EX:
680 return 1;
681 case _STORE_ATTR:
682 return 2;
683 case _DELETE_ATTR:
684 return 1;
685 case _STORE_GLOBAL:
686 return 1;
687 case _DELETE_GLOBAL:
688 return 0;
689 case _LOAD_LOCALS:
690 return 0;
691 case _LOAD_GLOBAL:
692 return 0;
693 case _GUARD_GLOBALS_VERSION:
694 return 0;
695 case _GUARD_BUILTINS_VERSION:
696 return 0;
697 case _LOAD_GLOBAL_MODULE:
698 return 0;
699 case _LOAD_GLOBAL_BUILTINS:
700 return 0;
701 case _DELETE_FAST:
702 return 0;
703 case _MAKE_CELL:
704 return 0;
705 case _DELETE_DEREF:
706 return 0;
707 case _LOAD_FROM_DICT_OR_DEREF:
708 return 1;
709 case _LOAD_DEREF:
710 return 0;
711 case _STORE_DEREF:
712 return 1;
713 case _COPY_FREE_VARS:
714 return 0;
715 case _BUILD_STRING:
716 return oparg;
717 case _BUILD_TUPLE:
718 return oparg;
719 case _BUILD_LIST:
720 return oparg;
721 case _LIST_EXTEND:
722 return 2 + (oparg-1);
723 case _SET_UPDATE:
724 return 2 + (oparg-1);
725 case _BUILD_MAP:
726 return oparg*2;
727 case _SETUP_ANNOTATIONS:
728 return 0;
729 case _BUILD_CONST_KEY_MAP:
730 return 1 + oparg;
731 case _DICT_UPDATE:
732 return 2 + (oparg - 1);
733 case _DICT_MERGE:
734 return 5 + (oparg - 1);
735 case _MAP_ADD:
736 return 3 + (oparg - 1);
737 case _LOAD_SUPER_ATTR_ATTR:
738 return 3;
739 case _LOAD_SUPER_ATTR_METHOD:
740 return 3;
741 case _LOAD_ATTR:
742 return 1;
743 case _GUARD_TYPE_VERSION:
744 return 1;
745 case _CHECK_MANAGED_OBJECT_HAS_VALUES:
746 return 1;
747 case _LOAD_ATTR_INSTANCE_VALUE_0:
748 return 1;
749 case _LOAD_ATTR_INSTANCE_VALUE_1:
750 return 1;
751 case _LOAD_ATTR_INSTANCE_VALUE:
752 return 1;
753 case _CHECK_ATTR_MODULE:
754 return 1;
755 case _LOAD_ATTR_MODULE:
756 return 1;
757 case _CHECK_ATTR_WITH_HINT:
758 return 1;
759 case _LOAD_ATTR_WITH_HINT:
760 return 1;
761 case _LOAD_ATTR_SLOT_0:
762 return 1;
763 case _LOAD_ATTR_SLOT_1:
764 return 1;
765 case _LOAD_ATTR_SLOT:
766 return 1;
767 case _CHECK_ATTR_CLASS:
768 return 1;
769 case _LOAD_ATTR_CLASS_0:
770 return 1;
771 case _LOAD_ATTR_CLASS_1:
772 return 1;
773 case _LOAD_ATTR_CLASS:
774 return 1;
775 case _GUARD_DORV_NO_DICT:
776 return 1;
777 case _STORE_ATTR_INSTANCE_VALUE:
778 return 2;
779 case _STORE_ATTR_SLOT:
780 return 2;
781 case _COMPARE_OP:
782 return 2;
783 case _COMPARE_OP_FLOAT:
784 return 2;
785 case _COMPARE_OP_INT:
786 return 2;
787 case _COMPARE_OP_STR:
788 return 2;
789 case _IS_OP:
790 return 2;
791 case _CONTAINS_OP:
792 return 2;
793 case _CONTAINS_OP_SET:
794 return 2;
795 case _CONTAINS_OP_DICT:
796 return 2;
797 case _CHECK_EG_MATCH:
798 return 2;
799 case _CHECK_EXC_MATCH:
800 return 2;
801 case _IS_NONE:
802 return 1;
803 case _GET_LEN:
804 return 1;
805 case _MATCH_CLASS:
806 return 3;
807 case _MATCH_MAPPING:
808 return 1;
809 case _MATCH_SEQUENCE:
810 return 1;
811 case _MATCH_KEYS:
812 return 2;
813 case _GET_ITER:
814 return 1;
815 case _GET_YIELD_FROM_ITER:
816 return 1;
817 case _FOR_ITER_TIER_TWO:
818 return 1;
819 case _ITER_CHECK_LIST:
820 return 1;
821 case _GUARD_NOT_EXHAUSTED_LIST:
822 return 1;
823 case _ITER_NEXT_LIST:
824 return 1;
825 case _ITER_CHECK_TUPLE:
826 return 1;
827 case _GUARD_NOT_EXHAUSTED_TUPLE:
828 return 1;
829 case _ITER_NEXT_TUPLE:
830 return 1;
831 case _ITER_CHECK_RANGE:
832 return 1;
833 case _GUARD_NOT_EXHAUSTED_RANGE:
834 return 1;
835 case _ITER_NEXT_RANGE:
836 return 1;
837 case _FOR_ITER_GEN_FRAME:
838 return 1;
839 case _WITH_EXCEPT_START:
840 return 4;
841 case _PUSH_EXC_INFO:
842 return 1;
843 case _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT:
844 return 1;
845 case _GUARD_KEYS_VERSION:
846 return 1;
847 case _LOAD_ATTR_METHOD_WITH_VALUES:
848 return 1;
849 case _LOAD_ATTR_METHOD_NO_DICT:
850 return 1;
851 case _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES:
852 return 1;
853 case _LOAD_ATTR_NONDESCRIPTOR_NO_DICT:
854 return 1;
855 case _CHECK_ATTR_METHOD_LAZY_DICT:
856 return 1;
857 case _LOAD_ATTR_METHOD_LAZY_DICT:
858 return 1;
859 case _CHECK_PERIODIC:
860 return 0;
861 case _PY_FRAME_GENERAL:
862 return 2 + oparg;
863 case _CHECK_FUNCTION_VERSION:
864 return 2 + oparg;
865 case _CHECK_METHOD_VERSION:
866 return 2 + oparg;
867 case _EXPAND_METHOD:
868 return 2 + oparg;
869 case _CHECK_IS_NOT_PY_CALLABLE:
870 return 2 + oparg;
871 case _CALL_NON_PY_GENERAL:
872 return 2 + oparg;
873 case _CHECK_CALL_BOUND_METHOD_EXACT_ARGS:
874 return 2 + oparg;
875 case _INIT_CALL_BOUND_METHOD_EXACT_ARGS:
876 return 2 + oparg;
877 case _CHECK_PEP_523:
878 return 0;
879 case _CHECK_FUNCTION_EXACT_ARGS:
880 return 2 + oparg;
881 case _CHECK_STACK_SPACE:
882 return 2 + oparg;
883 case _INIT_CALL_PY_EXACT_ARGS_0:
884 return 2 + oparg;
885 case _INIT_CALL_PY_EXACT_ARGS_1:
886 return 2 + oparg;
887 case _INIT_CALL_PY_EXACT_ARGS_2:
888 return 2 + oparg;
889 case _INIT_CALL_PY_EXACT_ARGS_3:
890 return 2 + oparg;
891 case _INIT_CALL_PY_EXACT_ARGS_4:
892 return 2 + oparg;
893 case _INIT_CALL_PY_EXACT_ARGS:
894 return 2 + oparg;
895 case _PUSH_FRAME:
896 return 1;
897 case _CALL_TYPE_1:
898 return 3;
899 case _CALL_STR_1:
900 return 3;
901 case _CALL_TUPLE_1:
902 return 3;
903 case _EXIT_INIT_CHECK:
904 return 1;
905 case _CALL_BUILTIN_CLASS:
906 return 2 + oparg;
907 case _CALL_BUILTIN_O:
908 return 2 + oparg;
909 case _CALL_BUILTIN_FAST:
910 return 2 + oparg;
911 case _CALL_BUILTIN_FAST_WITH_KEYWORDS:
912 return 2 + oparg;
913 case _CALL_LEN:
914 return 2 + oparg;
915 case _CALL_ISINSTANCE:
916 return 2 + oparg;
917 case _CALL_METHOD_DESCRIPTOR_O:
918 return 2 + oparg;
919 case _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS:
920 return 2 + oparg;
921 case _CALL_METHOD_DESCRIPTOR_NOARGS:
922 return 2 + oparg;
923 case _CALL_METHOD_DESCRIPTOR_FAST:
924 return 2 + oparg;
925 case _MAKE_FUNCTION:
926 return 1;
927 case _SET_FUNCTION_ATTRIBUTE:
928 return 2;
929 case _RETURN_GENERATOR:
930 return 0;
931 case _BUILD_SLICE:
932 return 2 + ((oparg == 3) ? 1 : 0);
933 case _CONVERT_VALUE:
934 return 1;
935 case _FORMAT_SIMPLE:
936 return 1;
937 case _FORMAT_WITH_SPEC:
938 return 2;
939 case _COPY:
940 return 1 + (oparg-1);
941 case _BINARY_OP:
942 return 2;
943 case _SWAP:
944 return 2 + (oparg-2);
945 case _GUARD_IS_TRUE_POP:
946 return 1;
947 case _GUARD_IS_FALSE_POP:
948 return 1;
949 case _GUARD_IS_NONE_POP:
950 return 1;
951 case _GUARD_IS_NOT_NONE_POP:
952 return 1;
953 case _JUMP_TO_TOP:
954 return 0;
955 case _SET_IP:
956 return 0;
957 case _CHECK_STACK_SPACE_OPERAND:
958 return 0;
959 case _SAVE_RETURN_OFFSET:
960 return 0;
961 case _EXIT_TRACE:
962 return 0;
963 case _CHECK_VALIDITY:
964 return 0;
965 case _LOAD_CONST_INLINE:
966 return 0;
967 case _LOAD_CONST_INLINE_BORROW:
968 return 0;
969 case _POP_TOP_LOAD_CONST_INLINE_BORROW:
970 return 1;
971 case _LOAD_CONST_INLINE_WITH_NULL:
972 return 0;
973 case _LOAD_CONST_INLINE_BORROW_WITH_NULL:
974 return 0;
975 case _CHECK_FUNCTION:
976 return 0;
977 case _INTERNAL_INCREMENT_OPT_COUNTER:
978 return 1;
979 case _COLD_EXIT:
980 return 0;
981 case _DYNAMIC_EXIT:
982 return 0;
983 case _START_EXECUTOR:
984 return 0;
985 case _FATAL_ERROR:
986 return 0;
987 case _CHECK_VALIDITY_AND_SET_IP:
988 return 0;
989 case _DEOPT:
990 return 0;
991 case _ERROR_POP_N:
992 return oparg;
993 case _TIER2_RESUME_CHECK:
994 return 0;
995 default:
996 return -1;
997 }
998 }
999
1000 #endif // NEED_OPCODE_METADATA
1001
1002
1003 #ifdef __cplusplus
1004 }
1005 #endif
1006 #endif /* !Py_CORE_UOP_METADATA_H */
1007