• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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