File indexing completed on 2025-11-19 09:50:52
0001
0002
0003
0004
0005
0006 #ifndef Py_CORE_UOP_METADATA_H
0007 #define Py_CORE_UOP_METADATA_H
0008 #ifdef __cplusplus
0009 extern "C" {
0010 #endif
0011
0012 #include <stdint.h>
0013 #include "pycore_uop_ids.h"
0014 extern const uint16_t _PyUop_Flags[MAX_UOP_ID+1];
0015 extern const uint8_t _PyUop_Replication[MAX_UOP_ID+1];
0016 extern const char * const _PyOpcode_uop_name[MAX_UOP_ID+1];
0017
0018 extern int _PyUop_num_popped(int opcode, int oparg);
0019
0020 #ifdef NEED_OPCODE_METADATA
0021 const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = {
0022 [_NOP] = HAS_PURE_FLAG,
0023 [_RESUME_CHECK] = HAS_DEOPT_FLAG,
0024 [_LOAD_FAST_CHECK] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0025 [_LOAD_FAST_0] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0026 [_LOAD_FAST_1] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0027 [_LOAD_FAST_2] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0028 [_LOAD_FAST_3] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0029 [_LOAD_FAST_4] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0030 [_LOAD_FAST_5] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0031 [_LOAD_FAST_6] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0032 [_LOAD_FAST_7] = HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0033 [_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG,
0034 [_LOAD_FAST_AND_CLEAR] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
0035 [_LOAD_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
0036 [_LOAD_CONST] = HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG,
0037 [_STORE_FAST_0] = HAS_LOCAL_FLAG,
0038 [_STORE_FAST_1] = HAS_LOCAL_FLAG,
0039 [_STORE_FAST_2] = HAS_LOCAL_FLAG,
0040 [_STORE_FAST_3] = HAS_LOCAL_FLAG,
0041 [_STORE_FAST_4] = HAS_LOCAL_FLAG,
0042 [_STORE_FAST_5] = HAS_LOCAL_FLAG,
0043 [_STORE_FAST_6] = HAS_LOCAL_FLAG,
0044 [_STORE_FAST_7] = HAS_LOCAL_FLAG,
0045 [_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
0046 [_STORE_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
0047 [_STORE_FAST_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG,
0048 [_POP_TOP] = HAS_PURE_FLAG,
0049 [_PUSH_NULL] = HAS_PURE_FLAG,
0050 [_END_SEND] = HAS_PURE_FLAG,
0051 [_UNARY_NEGATIVE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0052 [_UNARY_NOT] = HAS_PURE_FLAG,
0053 [_TO_BOOL] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0054 [_TO_BOOL_BOOL] = HAS_EXIT_FLAG,
0055 [_TO_BOOL_INT] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG,
0056 [_TO_BOOL_LIST] = HAS_EXIT_FLAG,
0057 [_TO_BOOL_NONE] = HAS_EXIT_FLAG,
0058 [_TO_BOOL_STR] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG,
0059 [_REPLACE_WITH_TRUE] = 0,
0060 [_UNARY_INVERT] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0061 [_GUARD_BOTH_INT] = HAS_EXIT_FLAG,
0062 [_GUARD_NOS_INT] = HAS_EXIT_FLAG,
0063 [_GUARD_TOS_INT] = HAS_EXIT_FLAG,
0064 [_BINARY_OP_MULTIPLY_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
0065 [_BINARY_OP_ADD_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
0066 [_BINARY_OP_SUBTRACT_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
0067 [_GUARD_BOTH_FLOAT] = HAS_EXIT_FLAG,
0068 [_GUARD_NOS_FLOAT] = HAS_EXIT_FLAG,
0069 [_GUARD_TOS_FLOAT] = HAS_EXIT_FLAG,
0070 [_BINARY_OP_MULTIPLY_FLOAT] = HAS_PURE_FLAG,
0071 [_BINARY_OP_ADD_FLOAT] = HAS_PURE_FLAG,
0072 [_BINARY_OP_SUBTRACT_FLOAT] = HAS_PURE_FLAG,
0073 [_GUARD_BOTH_UNICODE] = HAS_EXIT_FLAG,
0074 [_BINARY_OP_ADD_UNICODE] = HAS_ERROR_FLAG | HAS_PURE_FLAG,
0075 [_BINARY_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0076 [_BINARY_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0077 [_STORE_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0078 [_BINARY_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG,
0079 [_BINARY_SUBSCR_STR_INT] = HAS_DEOPT_FLAG,
0080 [_BINARY_SUBSCR_TUPLE_INT] = HAS_DEOPT_FLAG,
0081 [_BINARY_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0082 [_LIST_APPEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
0083 [_SET_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0084 [_STORE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0085 [_STORE_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG,
0086 [_STORE_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0087 [_DELETE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0088 [_CALL_INTRINSIC_1] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0089 [_CALL_INTRINSIC_2] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0090 [_POP_FRAME] = 0,
0091 [_GET_AITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0092 [_GET_ANEXT] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0093 [_GET_AWAITABLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0094 [_YIELD_VALUE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
0095 [_POP_EXCEPT] = HAS_ESCAPES_FLAG,
0096 [_LOAD_ASSERTION_ERROR] = 0,
0097 [_LOAD_BUILD_CLASS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0098 [_STORE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0099 [_DELETE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0100 [_UNPACK_SEQUENCE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0101 [_UNPACK_SEQUENCE_TWO_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0102 [_UNPACK_SEQUENCE_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0103 [_UNPACK_SEQUENCE_LIST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0104 [_UNPACK_EX] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0105 [_STORE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0106 [_DELETE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0107 [_STORE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0108 [_DELETE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0109 [_LOAD_LOCALS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0110 [_LOAD_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0111 [_GUARD_GLOBALS_VERSION] = HAS_DEOPT_FLAG,
0112 [_GUARD_BUILTINS_VERSION] = HAS_DEOPT_FLAG,
0113 [_LOAD_GLOBAL_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0114 [_LOAD_GLOBAL_BUILTINS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0115 [_DELETE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0116 [_MAKE_CELL] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG,
0117 [_DELETE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0118 [_LOAD_FROM_DICT_OR_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0119 [_LOAD_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0120 [_STORE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ESCAPES_FLAG,
0121 [_COPY_FREE_VARS] = HAS_ARG_FLAG,
0122 [_BUILD_STRING] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
0123 [_BUILD_TUPLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
0124 [_BUILD_LIST] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
0125 [_LIST_EXTEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0126 [_SET_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0127 [_BUILD_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0128 [_SETUP_ANNOTATIONS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0129 [_BUILD_CONST_KEY_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0130 [_DICT_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0131 [_DICT_MERGE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0132 [_MAP_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0133 [_LOAD_SUPER_ATTR_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0134 [_LOAD_SUPER_ATTR_METHOD] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0135 [_LOAD_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0136 [_GUARD_TYPE_VERSION] = HAS_EXIT_FLAG,
0137 [_CHECK_MANAGED_OBJECT_HAS_VALUES] = HAS_DEOPT_FLAG,
0138 [_LOAD_ATTR_INSTANCE_VALUE_0] = HAS_DEOPT_FLAG,
0139 [_LOAD_ATTR_INSTANCE_VALUE_1] = HAS_DEOPT_FLAG,
0140 [_LOAD_ATTR_INSTANCE_VALUE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG,
0141 [_CHECK_ATTR_MODULE] = HAS_DEOPT_FLAG,
0142 [_LOAD_ATTR_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0143 [_CHECK_ATTR_WITH_HINT] = HAS_DEOPT_FLAG,
0144 [_LOAD_ATTR_WITH_HINT] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG,
0145 [_LOAD_ATTR_SLOT_0] = HAS_DEOPT_FLAG,
0146 [_LOAD_ATTR_SLOT_1] = HAS_DEOPT_FLAG,
0147 [_LOAD_ATTR_SLOT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG,
0148 [_CHECK_ATTR_CLASS] = HAS_DEOPT_FLAG,
0149 [_LOAD_ATTR_CLASS_0] = 0,
0150 [_LOAD_ATTR_CLASS_1] = 0,
0151 [_LOAD_ATTR_CLASS] = HAS_ARG_FLAG | HAS_OPARG_AND_1_FLAG,
0152 [_GUARD_DORV_NO_DICT] = HAS_DEOPT_FLAG,
0153 [_STORE_ATTR_INSTANCE_VALUE] = 0,
0154 [_STORE_ATTR_SLOT] = 0,
0155 [_COMPARE_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0156 [_COMPARE_OP_FLOAT] = HAS_ARG_FLAG,
0157 [_COMPARE_OP_INT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0158 [_COMPARE_OP_STR] = HAS_ARG_FLAG,
0159 [_IS_OP] = HAS_ARG_FLAG,
0160 [_CONTAINS_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0161 [_CONTAINS_OP_SET] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0162 [_CONTAINS_OP_DICT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0163 [_CHECK_EG_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0164 [_CHECK_EXC_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0165 [_IS_NONE] = 0,
0166 [_GET_LEN] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0167 [_MATCH_CLASS] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0168 [_MATCH_MAPPING] = 0,
0169 [_MATCH_SEQUENCE] = 0,
0170 [_MATCH_KEYS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0171 [_GET_ITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0172 [_GET_YIELD_FROM_ITER] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0173 [_FOR_ITER_TIER_TWO] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0174 [_ITER_CHECK_LIST] = HAS_EXIT_FLAG,
0175 [_GUARD_NOT_EXHAUSTED_LIST] = HAS_EXIT_FLAG,
0176 [_ITER_NEXT_LIST] = 0,
0177 [_ITER_CHECK_TUPLE] = HAS_EXIT_FLAG,
0178 [_GUARD_NOT_EXHAUSTED_TUPLE] = HAS_EXIT_FLAG,
0179 [_ITER_NEXT_TUPLE] = 0,
0180 [_ITER_CHECK_RANGE] = HAS_EXIT_FLAG,
0181 [_GUARD_NOT_EXHAUSTED_RANGE] = HAS_EXIT_FLAG,
0182 [_ITER_NEXT_RANGE] = HAS_ERROR_FLAG,
0183 [_FOR_ITER_GEN_FRAME] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0184 [_WITH_EXCEPT_START] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0185 [_PUSH_EXC_INFO] = 0,
0186 [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = HAS_DEOPT_FLAG,
0187 [_GUARD_KEYS_VERSION] = HAS_DEOPT_FLAG,
0188 [_LOAD_ATTR_METHOD_WITH_VALUES] = HAS_ARG_FLAG,
0189 [_LOAD_ATTR_METHOD_NO_DICT] = HAS_ARG_FLAG,
0190 [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = HAS_ARG_FLAG,
0191 [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = HAS_ARG_FLAG,
0192 [_CHECK_ATTR_METHOD_LAZY_DICT] = HAS_DEOPT_FLAG,
0193 [_LOAD_ATTR_METHOD_LAZY_DICT] = HAS_ARG_FLAG,
0194 [_CHECK_PERIODIC] = HAS_EVAL_BREAK_FLAG,
0195 [_PY_FRAME_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0196 [_CHECK_FUNCTION_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
0197 [_CHECK_METHOD_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
0198 [_EXPAND_METHOD] = HAS_ARG_FLAG,
0199 [_CHECK_IS_NOT_PY_CALLABLE] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
0200 [_CALL_NON_PY_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0201 [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
0202 [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG,
0203 [_CHECK_PEP_523] = HAS_DEOPT_FLAG,
0204 [_CHECK_FUNCTION_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG,
0205 [_CHECK_STACK_SPACE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0206 [_INIT_CALL_PY_EXACT_ARGS_0] = HAS_PURE_FLAG,
0207 [_INIT_CALL_PY_EXACT_ARGS_1] = HAS_PURE_FLAG,
0208 [_INIT_CALL_PY_EXACT_ARGS_2] = HAS_PURE_FLAG,
0209 [_INIT_CALL_PY_EXACT_ARGS_3] = HAS_PURE_FLAG,
0210 [_INIT_CALL_PY_EXACT_ARGS_4] = HAS_PURE_FLAG,
0211 [_INIT_CALL_PY_EXACT_ARGS] = HAS_ARG_FLAG | HAS_PURE_FLAG,
0212 [_PUSH_FRAME] = 0,
0213 [_CALL_TYPE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG,
0214 [_CALL_STR_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0215 [_CALL_TUPLE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0216 [_EXIT_INIT_CHECK] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0217 [_CALL_BUILTIN_CLASS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0218 [_CALL_BUILTIN_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0219 [_CALL_BUILTIN_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0220 [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0221 [_CALL_LEN] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0222 [_CALL_ISINSTANCE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0223 [_CALL_METHOD_DESCRIPTOR_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0224 [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0225 [_CALL_METHOD_DESCRIPTOR_NOARGS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0226 [_CALL_METHOD_DESCRIPTOR_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0227 [_MAKE_FUNCTION] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0228 [_SET_FUNCTION_ATTRIBUTE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
0229 [_RETURN_GENERATOR] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG,
0230 [_BUILD_SLICE] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
0231 [_CONVERT_VALUE] = HAS_ARG_FLAG | HAS_ERROR_FLAG,
0232 [_FORMAT_SIMPLE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0233 [_FORMAT_WITH_SPEC] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0234 [_COPY] = HAS_ARG_FLAG | HAS_PURE_FLAG,
0235 [_BINARY_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG,
0236 [_SWAP] = HAS_ARG_FLAG | HAS_PURE_FLAG,
0237 [_GUARD_IS_TRUE_POP] = HAS_EXIT_FLAG,
0238 [_GUARD_IS_FALSE_POP] = HAS_EXIT_FLAG,
0239 [_GUARD_IS_NONE_POP] = HAS_EXIT_FLAG,
0240 [_GUARD_IS_NOT_NONE_POP] = HAS_EXIT_FLAG,
0241 [_JUMP_TO_TOP] = 0,
0242 [_SET_IP] = 0,
0243 [_CHECK_STACK_SPACE_OPERAND] = HAS_DEOPT_FLAG,
0244 [_SAVE_RETURN_OFFSET] = HAS_ARG_FLAG,
0245 [_EXIT_TRACE] = 0,
0246 [_CHECK_VALIDITY] = HAS_DEOPT_FLAG,
0247 [_LOAD_CONST_INLINE] = HAS_PURE_FLAG,
0248 [_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG,
0249 [_POP_TOP_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG,
0250 [_LOAD_CONST_INLINE_WITH_NULL] = HAS_PURE_FLAG,
0251 [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = HAS_PURE_FLAG,
0252 [_CHECK_FUNCTION] = HAS_DEOPT_FLAG,
0253 [_INTERNAL_INCREMENT_OPT_COUNTER] = 0,
0254 [_COLD_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
0255 [_DYNAMIC_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG,
0256 [_START_EXECUTOR] = HAS_DEOPT_FLAG,
0257 [_FATAL_ERROR] = 0,
0258 [_CHECK_VALIDITY_AND_SET_IP] = HAS_DEOPT_FLAG,
0259 [_DEOPT] = 0,
0260 [_ERROR_POP_N] = HAS_ARG_FLAG,
0261 [_TIER2_RESUME_CHECK] = HAS_DEOPT_FLAG,
0262 };
0263
0264 const uint8_t _PyUop_Replication[MAX_UOP_ID+1] = {
0265 [_LOAD_FAST] = 8,
0266 [_STORE_FAST] = 8,
0267 [_INIT_CALL_PY_EXACT_ARGS] = 5,
0268 };
0269
0270 const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = {
0271 [_BINARY_OP] = "_BINARY_OP",
0272 [_BINARY_OP_ADD_FLOAT] = "_BINARY_OP_ADD_FLOAT",
0273 [_BINARY_OP_ADD_INT] = "_BINARY_OP_ADD_INT",
0274 [_BINARY_OP_ADD_UNICODE] = "_BINARY_OP_ADD_UNICODE",
0275 [_BINARY_OP_MULTIPLY_FLOAT] = "_BINARY_OP_MULTIPLY_FLOAT",
0276 [_BINARY_OP_MULTIPLY_INT] = "_BINARY_OP_MULTIPLY_INT",
0277 [_BINARY_OP_SUBTRACT_FLOAT] = "_BINARY_OP_SUBTRACT_FLOAT",
0278 [_BINARY_OP_SUBTRACT_INT] = "_BINARY_OP_SUBTRACT_INT",
0279 [_BINARY_SLICE] = "_BINARY_SLICE",
0280 [_BINARY_SUBSCR] = "_BINARY_SUBSCR",
0281 [_BINARY_SUBSCR_DICT] = "_BINARY_SUBSCR_DICT",
0282 [_BINARY_SUBSCR_LIST_INT] = "_BINARY_SUBSCR_LIST_INT",
0283 [_BINARY_SUBSCR_STR_INT] = "_BINARY_SUBSCR_STR_INT",
0284 [_BINARY_SUBSCR_TUPLE_INT] = "_BINARY_SUBSCR_TUPLE_INT",
0285 [_BUILD_CONST_KEY_MAP] = "_BUILD_CONST_KEY_MAP",
0286 [_BUILD_LIST] = "_BUILD_LIST",
0287 [_BUILD_MAP] = "_BUILD_MAP",
0288 [_BUILD_SLICE] = "_BUILD_SLICE",
0289 [_BUILD_STRING] = "_BUILD_STRING",
0290 [_BUILD_TUPLE] = "_BUILD_TUPLE",
0291 [_CALL_BUILTIN_CLASS] = "_CALL_BUILTIN_CLASS",
0292 [_CALL_BUILTIN_FAST] = "_CALL_BUILTIN_FAST",
0293 [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = "_CALL_BUILTIN_FAST_WITH_KEYWORDS",
0294 [_CALL_BUILTIN_O] = "_CALL_BUILTIN_O",
0295 [_CALL_INTRINSIC_1] = "_CALL_INTRINSIC_1",
0296 [_CALL_INTRINSIC_2] = "_CALL_INTRINSIC_2",
0297 [_CALL_ISINSTANCE] = "_CALL_ISINSTANCE",
0298 [_CALL_LEN] = "_CALL_LEN",
0299 [_CALL_METHOD_DESCRIPTOR_FAST] = "_CALL_METHOD_DESCRIPTOR_FAST",
0300 [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS",
0301 [_CALL_METHOD_DESCRIPTOR_NOARGS] = "_CALL_METHOD_DESCRIPTOR_NOARGS",
0302 [_CALL_METHOD_DESCRIPTOR_O] = "_CALL_METHOD_DESCRIPTOR_O",
0303 [_CALL_NON_PY_GENERAL] = "_CALL_NON_PY_GENERAL",
0304 [_CALL_STR_1] = "_CALL_STR_1",
0305 [_CALL_TUPLE_1] = "_CALL_TUPLE_1",
0306 [_CALL_TYPE_1] = "_CALL_TYPE_1",
0307 [_CHECK_ATTR_CLASS] = "_CHECK_ATTR_CLASS",
0308 [_CHECK_ATTR_METHOD_LAZY_DICT] = "_CHECK_ATTR_METHOD_LAZY_DICT",
0309 [_CHECK_ATTR_MODULE] = "_CHECK_ATTR_MODULE",
0310 [_CHECK_ATTR_WITH_HINT] = "_CHECK_ATTR_WITH_HINT",
0311 [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = "_CHECK_CALL_BOUND_METHOD_EXACT_ARGS",
0312 [_CHECK_EG_MATCH] = "_CHECK_EG_MATCH",
0313 [_CHECK_EXC_MATCH] = "_CHECK_EXC_MATCH",
0314 [_CHECK_FUNCTION] = "_CHECK_FUNCTION",
0315 [_CHECK_FUNCTION_EXACT_ARGS] = "_CHECK_FUNCTION_EXACT_ARGS",
0316 [_CHECK_FUNCTION_VERSION] = "_CHECK_FUNCTION_VERSION",
0317 [_CHECK_IS_NOT_PY_CALLABLE] = "_CHECK_IS_NOT_PY_CALLABLE",
0318 [_CHECK_MANAGED_OBJECT_HAS_VALUES] = "_CHECK_MANAGED_OBJECT_HAS_VALUES",
0319 [_CHECK_METHOD_VERSION] = "_CHECK_METHOD_VERSION",
0320 [_CHECK_PEP_523] = "_CHECK_PEP_523",
0321 [_CHECK_PERIODIC] = "_CHECK_PERIODIC",
0322 [_CHECK_STACK_SPACE] = "_CHECK_STACK_SPACE",
0323 [_CHECK_STACK_SPACE_OPERAND] = "_CHECK_STACK_SPACE_OPERAND",
0324 [_CHECK_VALIDITY] = "_CHECK_VALIDITY",
0325 [_CHECK_VALIDITY_AND_SET_IP] = "_CHECK_VALIDITY_AND_SET_IP",
0326 [_COLD_EXIT] = "_COLD_EXIT",
0327 [_COMPARE_OP] = "_COMPARE_OP",
0328 [_COMPARE_OP_FLOAT] = "_COMPARE_OP_FLOAT",
0329 [_COMPARE_OP_INT] = "_COMPARE_OP_INT",
0330 [_COMPARE_OP_STR] = "_COMPARE_OP_STR",
0331 [_CONTAINS_OP] = "_CONTAINS_OP",
0332 [_CONTAINS_OP_DICT] = "_CONTAINS_OP_DICT",
0333 [_CONTAINS_OP_SET] = "_CONTAINS_OP_SET",
0334 [_CONVERT_VALUE] = "_CONVERT_VALUE",
0335 [_COPY] = "_COPY",
0336 [_COPY_FREE_VARS] = "_COPY_FREE_VARS",
0337 [_DELETE_ATTR] = "_DELETE_ATTR",
0338 [_DELETE_DEREF] = "_DELETE_DEREF",
0339 [_DELETE_FAST] = "_DELETE_FAST",
0340 [_DELETE_GLOBAL] = "_DELETE_GLOBAL",
0341 [_DELETE_NAME] = "_DELETE_NAME",
0342 [_DELETE_SUBSCR] = "_DELETE_SUBSCR",
0343 [_DEOPT] = "_DEOPT",
0344 [_DICT_MERGE] = "_DICT_MERGE",
0345 [_DICT_UPDATE] = "_DICT_UPDATE",
0346 [_DYNAMIC_EXIT] = "_DYNAMIC_EXIT",
0347 [_END_SEND] = "_END_SEND",
0348 [_ERROR_POP_N] = "_ERROR_POP_N",
0349 [_EXIT_INIT_CHECK] = "_EXIT_INIT_CHECK",
0350 [_EXIT_TRACE] = "_EXIT_TRACE",
0351 [_EXPAND_METHOD] = "_EXPAND_METHOD",
0352 [_FATAL_ERROR] = "_FATAL_ERROR",
0353 [_FORMAT_SIMPLE] = "_FORMAT_SIMPLE",
0354 [_FORMAT_WITH_SPEC] = "_FORMAT_WITH_SPEC",
0355 [_FOR_ITER_GEN_FRAME] = "_FOR_ITER_GEN_FRAME",
0356 [_FOR_ITER_TIER_TWO] = "_FOR_ITER_TIER_TWO",
0357 [_GET_AITER] = "_GET_AITER",
0358 [_GET_ANEXT] = "_GET_ANEXT",
0359 [_GET_AWAITABLE] = "_GET_AWAITABLE",
0360 [_GET_ITER] = "_GET_ITER",
0361 [_GET_LEN] = "_GET_LEN",
0362 [_GET_YIELD_FROM_ITER] = "_GET_YIELD_FROM_ITER",
0363 [_GUARD_BOTH_FLOAT] = "_GUARD_BOTH_FLOAT",
0364 [_GUARD_BOTH_INT] = "_GUARD_BOTH_INT",
0365 [_GUARD_BOTH_UNICODE] = "_GUARD_BOTH_UNICODE",
0366 [_GUARD_BUILTINS_VERSION] = "_GUARD_BUILTINS_VERSION",
0367 [_GUARD_DORV_NO_DICT] = "_GUARD_DORV_NO_DICT",
0368 [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = "_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT",
0369 [_GUARD_GLOBALS_VERSION] = "_GUARD_GLOBALS_VERSION",
0370 [_GUARD_IS_FALSE_POP] = "_GUARD_IS_FALSE_POP",
0371 [_GUARD_IS_NONE_POP] = "_GUARD_IS_NONE_POP",
0372 [_GUARD_IS_NOT_NONE_POP] = "_GUARD_IS_NOT_NONE_POP",
0373 [_GUARD_IS_TRUE_POP] = "_GUARD_IS_TRUE_POP",
0374 [_GUARD_KEYS_VERSION] = "_GUARD_KEYS_VERSION",
0375 [_GUARD_NOS_FLOAT] = "_GUARD_NOS_FLOAT",
0376 [_GUARD_NOS_INT] = "_GUARD_NOS_INT",
0377 [_GUARD_NOT_EXHAUSTED_LIST] = "_GUARD_NOT_EXHAUSTED_LIST",
0378 [_GUARD_NOT_EXHAUSTED_RANGE] = "_GUARD_NOT_EXHAUSTED_RANGE",
0379 [_GUARD_NOT_EXHAUSTED_TUPLE] = "_GUARD_NOT_EXHAUSTED_TUPLE",
0380 [_GUARD_TOS_FLOAT] = "_GUARD_TOS_FLOAT",
0381 [_GUARD_TOS_INT] = "_GUARD_TOS_INT",
0382 [_GUARD_TYPE_VERSION] = "_GUARD_TYPE_VERSION",
0383 [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = "_INIT_CALL_BOUND_METHOD_EXACT_ARGS",
0384 [_INIT_CALL_PY_EXACT_ARGS] = "_INIT_CALL_PY_EXACT_ARGS",
0385 [_INIT_CALL_PY_EXACT_ARGS_0] = "_INIT_CALL_PY_EXACT_ARGS_0",
0386 [_INIT_CALL_PY_EXACT_ARGS_1] = "_INIT_CALL_PY_EXACT_ARGS_1",
0387 [_INIT_CALL_PY_EXACT_ARGS_2] = "_INIT_CALL_PY_EXACT_ARGS_2",
0388 [_INIT_CALL_PY_EXACT_ARGS_3] = "_INIT_CALL_PY_EXACT_ARGS_3",
0389 [_INIT_CALL_PY_EXACT_ARGS_4] = "_INIT_CALL_PY_EXACT_ARGS_4",
0390 [_INTERNAL_INCREMENT_OPT_COUNTER] = "_INTERNAL_INCREMENT_OPT_COUNTER",
0391 [_IS_NONE] = "_IS_NONE",
0392 [_IS_OP] = "_IS_OP",
0393 [_ITER_CHECK_LIST] = "_ITER_CHECK_LIST",
0394 [_ITER_CHECK_RANGE] = "_ITER_CHECK_RANGE",
0395 [_ITER_CHECK_TUPLE] = "_ITER_CHECK_TUPLE",
0396 [_ITER_NEXT_LIST] = "_ITER_NEXT_LIST",
0397 [_ITER_NEXT_RANGE] = "_ITER_NEXT_RANGE",
0398 [_ITER_NEXT_TUPLE] = "_ITER_NEXT_TUPLE",
0399 [_JUMP_TO_TOP] = "_JUMP_TO_TOP",
0400 [_LIST_APPEND] = "_LIST_APPEND",
0401 [_LIST_EXTEND] = "_LIST_EXTEND",
0402 [_LOAD_ASSERTION_ERROR] = "_LOAD_ASSERTION_ERROR",
0403 [_LOAD_ATTR] = "_LOAD_ATTR",
0404 [_LOAD_ATTR_CLASS] = "_LOAD_ATTR_CLASS",
0405 [_LOAD_ATTR_CLASS_0] = "_LOAD_ATTR_CLASS_0",
0406 [_LOAD_ATTR_CLASS_1] = "_LOAD_ATTR_CLASS_1",
0407 [_LOAD_ATTR_INSTANCE_VALUE] = "_LOAD_ATTR_INSTANCE_VALUE",
0408 [_LOAD_ATTR_INSTANCE_VALUE_0] = "_LOAD_ATTR_INSTANCE_VALUE_0",
0409 [_LOAD_ATTR_INSTANCE_VALUE_1] = "_LOAD_ATTR_INSTANCE_VALUE_1",
0410 [_LOAD_ATTR_METHOD_LAZY_DICT] = "_LOAD_ATTR_METHOD_LAZY_DICT",
0411 [_LOAD_ATTR_METHOD_NO_DICT] = "_LOAD_ATTR_METHOD_NO_DICT",
0412 [_LOAD_ATTR_METHOD_WITH_VALUES] = "_LOAD_ATTR_METHOD_WITH_VALUES",
0413 [_LOAD_ATTR_MODULE] = "_LOAD_ATTR_MODULE",
0414 [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "_LOAD_ATTR_NONDESCRIPTOR_NO_DICT",
0415 [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES",
0416 [_LOAD_ATTR_SLOT] = "_LOAD_ATTR_SLOT",
0417 [_LOAD_ATTR_SLOT_0] = "_LOAD_ATTR_SLOT_0",
0418 [_LOAD_ATTR_SLOT_1] = "_LOAD_ATTR_SLOT_1",
0419 [_LOAD_ATTR_WITH_HINT] = "_LOAD_ATTR_WITH_HINT",
0420 [_LOAD_BUILD_CLASS] = "_LOAD_BUILD_CLASS",
0421 [_LOAD_CONST] = "_LOAD_CONST",
0422 [_LOAD_CONST_INLINE] = "_LOAD_CONST_INLINE",
0423 [_LOAD_CONST_INLINE_BORROW] = "_LOAD_CONST_INLINE_BORROW",
0424 [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = "_LOAD_CONST_INLINE_BORROW_WITH_NULL",
0425 [_LOAD_CONST_INLINE_WITH_NULL] = "_LOAD_CONST_INLINE_WITH_NULL",
0426 [_LOAD_DEREF] = "_LOAD_DEREF",
0427 [_LOAD_FAST] = "_LOAD_FAST",
0428 [_LOAD_FAST_0] = "_LOAD_FAST_0",
0429 [_LOAD_FAST_1] = "_LOAD_FAST_1",
0430 [_LOAD_FAST_2] = "_LOAD_FAST_2",
0431 [_LOAD_FAST_3] = "_LOAD_FAST_3",
0432 [_LOAD_FAST_4] = "_LOAD_FAST_4",
0433 [_LOAD_FAST_5] = "_LOAD_FAST_5",
0434 [_LOAD_FAST_6] = "_LOAD_FAST_6",
0435 [_LOAD_FAST_7] = "_LOAD_FAST_7",
0436 [_LOAD_FAST_AND_CLEAR] = "_LOAD_FAST_AND_CLEAR",
0437 [_LOAD_FAST_CHECK] = "_LOAD_FAST_CHECK",
0438 [_LOAD_FAST_LOAD_FAST] = "_LOAD_FAST_LOAD_FAST",
0439 [_LOAD_FROM_DICT_OR_DEREF] = "_LOAD_FROM_DICT_OR_DEREF",
0440 [_LOAD_GLOBAL] = "_LOAD_GLOBAL",
0441 [_LOAD_GLOBAL_BUILTINS] = "_LOAD_GLOBAL_BUILTINS",
0442 [_LOAD_GLOBAL_MODULE] = "_LOAD_GLOBAL_MODULE",
0443 [_LOAD_LOCALS] = "_LOAD_LOCALS",
0444 [_LOAD_SUPER_ATTR_ATTR] = "_LOAD_SUPER_ATTR_ATTR",
0445 [_LOAD_SUPER_ATTR_METHOD] = "_LOAD_SUPER_ATTR_METHOD",
0446 [_MAKE_CELL] = "_MAKE_CELL",
0447 [_MAKE_FUNCTION] = "_MAKE_FUNCTION",
0448 [_MAP_ADD] = "_MAP_ADD",
0449 [_MATCH_CLASS] = "_MATCH_CLASS",
0450 [_MATCH_KEYS] = "_MATCH_KEYS",
0451 [_MATCH_MAPPING] = "_MATCH_MAPPING",
0452 [_MATCH_SEQUENCE] = "_MATCH_SEQUENCE",
0453 [_NOP] = "_NOP",
0454 [_POP_EXCEPT] = "_POP_EXCEPT",
0455 [_POP_FRAME] = "_POP_FRAME",
0456 [_POP_TOP] = "_POP_TOP",
0457 [_POP_TOP_LOAD_CONST_INLINE_BORROW] = "_POP_TOP_LOAD_CONST_INLINE_BORROW",
0458 [_PUSH_EXC_INFO] = "_PUSH_EXC_INFO",
0459 [_PUSH_FRAME] = "_PUSH_FRAME",
0460 [_PUSH_NULL] = "_PUSH_NULL",
0461 [_PY_FRAME_GENERAL] = "_PY_FRAME_GENERAL",
0462 [_REPLACE_WITH_TRUE] = "_REPLACE_WITH_TRUE",
0463 [_RESUME_CHECK] = "_RESUME_CHECK",
0464 [_RETURN_GENERATOR] = "_RETURN_GENERATOR",
0465 [_SAVE_RETURN_OFFSET] = "_SAVE_RETURN_OFFSET",
0466 [_SETUP_ANNOTATIONS] = "_SETUP_ANNOTATIONS",
0467 [_SET_ADD] = "_SET_ADD",
0468 [_SET_FUNCTION_ATTRIBUTE] = "_SET_FUNCTION_ATTRIBUTE",
0469 [_SET_IP] = "_SET_IP",
0470 [_SET_UPDATE] = "_SET_UPDATE",
0471 [_START_EXECUTOR] = "_START_EXECUTOR",
0472 [_STORE_ATTR] = "_STORE_ATTR",
0473 [_STORE_ATTR_INSTANCE_VALUE] = "_STORE_ATTR_INSTANCE_VALUE",
0474 [_STORE_ATTR_SLOT] = "_STORE_ATTR_SLOT",
0475 [_STORE_DEREF] = "_STORE_DEREF",
0476 [_STORE_FAST] = "_STORE_FAST",
0477 [_STORE_FAST_0] = "_STORE_FAST_0",
0478 [_STORE_FAST_1] = "_STORE_FAST_1",
0479 [_STORE_FAST_2] = "_STORE_FAST_2",
0480 [_STORE_FAST_3] = "_STORE_FAST_3",
0481 [_STORE_FAST_4] = "_STORE_FAST_4",
0482 [_STORE_FAST_5] = "_STORE_FAST_5",
0483 [_STORE_FAST_6] = "_STORE_FAST_6",
0484 [_STORE_FAST_7] = "_STORE_FAST_7",
0485 [_STORE_FAST_LOAD_FAST] = "_STORE_FAST_LOAD_FAST",
0486 [_STORE_FAST_STORE_FAST] = "_STORE_FAST_STORE_FAST",
0487 [_STORE_GLOBAL] = "_STORE_GLOBAL",
0488 [_STORE_NAME] = "_STORE_NAME",
0489 [_STORE_SLICE] = "_STORE_SLICE",
0490 [_STORE_SUBSCR] = "_STORE_SUBSCR",
0491 [_STORE_SUBSCR_DICT] = "_STORE_SUBSCR_DICT",
0492 [_STORE_SUBSCR_LIST_INT] = "_STORE_SUBSCR_LIST_INT",
0493 [_SWAP] = "_SWAP",
0494 [_TIER2_RESUME_CHECK] = "_TIER2_RESUME_CHECK",
0495 [_TO_BOOL] = "_TO_BOOL",
0496 [_TO_BOOL_BOOL] = "_TO_BOOL_BOOL",
0497 [_TO_BOOL_INT] = "_TO_BOOL_INT",
0498 [_TO_BOOL_LIST] = "_TO_BOOL_LIST",
0499 [_TO_BOOL_NONE] = "_TO_BOOL_NONE",
0500 [_TO_BOOL_STR] = "_TO_BOOL_STR",
0501 [_UNARY_INVERT] = "_UNARY_INVERT",
0502 [_UNARY_NEGATIVE] = "_UNARY_NEGATIVE",
0503 [_UNARY_NOT] = "_UNARY_NOT",
0504 [_UNPACK_EX] = "_UNPACK_EX",
0505 [_UNPACK_SEQUENCE] = "_UNPACK_SEQUENCE",
0506 [_UNPACK_SEQUENCE_LIST] = "_UNPACK_SEQUENCE_LIST",
0507 [_UNPACK_SEQUENCE_TUPLE] = "_UNPACK_SEQUENCE_TUPLE",
0508 [_UNPACK_SEQUENCE_TWO_TUPLE] = "_UNPACK_SEQUENCE_TWO_TUPLE",
0509 [_WITH_EXCEPT_START] = "_WITH_EXCEPT_START",
0510 [_YIELD_VALUE] = "_YIELD_VALUE",
0511 };
0512 int _PyUop_num_popped(int opcode, int oparg)
0513 {
0514 switch(opcode) {
0515 case _NOP:
0516 return 0;
0517 case _RESUME_CHECK:
0518 return 0;
0519 case _LOAD_FAST_CHECK:
0520 return 0;
0521 case _LOAD_FAST_0:
0522 return 0;
0523 case _LOAD_FAST_1:
0524 return 0;
0525 case _LOAD_FAST_2:
0526 return 0;
0527 case _LOAD_FAST_3:
0528 return 0;
0529 case _LOAD_FAST_4:
0530 return 0;
0531 case _LOAD_FAST_5:
0532 return 0;
0533 case _LOAD_FAST_6:
0534 return 0;
0535 case _LOAD_FAST_7:
0536 return 0;
0537 case _LOAD_FAST:
0538 return 0;
0539 case _LOAD_FAST_AND_CLEAR:
0540 return 0;
0541 case _LOAD_FAST_LOAD_FAST:
0542 return 0;
0543 case _LOAD_CONST:
0544 return 0;
0545 case _STORE_FAST_0:
0546 return 1;
0547 case _STORE_FAST_1:
0548 return 1;
0549 case _STORE_FAST_2:
0550 return 1;
0551 case _STORE_FAST_3:
0552 return 1;
0553 case _STORE_FAST_4:
0554 return 1;
0555 case _STORE_FAST_5:
0556 return 1;
0557 case _STORE_FAST_6:
0558 return 1;
0559 case _STORE_FAST_7:
0560 return 1;
0561 case _STORE_FAST:
0562 return 1;
0563 case _STORE_FAST_LOAD_FAST:
0564 return 1;
0565 case _STORE_FAST_STORE_FAST:
0566 return 2;
0567 case _POP_TOP:
0568 return 1;
0569 case _PUSH_NULL:
0570 return 0;
0571 case _END_SEND:
0572 return 2;
0573 case _UNARY_NEGATIVE:
0574 return 1;
0575 case _UNARY_NOT:
0576 return 1;
0577 case _TO_BOOL:
0578 return 1;
0579 case _TO_BOOL_BOOL:
0580 return 1;
0581 case _TO_BOOL_INT:
0582 return 1;
0583 case _TO_BOOL_LIST:
0584 return 1;
0585 case _TO_BOOL_NONE:
0586 return 1;
0587 case _TO_BOOL_STR:
0588 return 1;
0589 case _REPLACE_WITH_TRUE:
0590 return 1;
0591 case _UNARY_INVERT:
0592 return 1;
0593 case _GUARD_BOTH_INT:
0594 return 2;
0595 case _GUARD_NOS_INT:
0596 return 2;
0597 case _GUARD_TOS_INT:
0598 return 1;
0599 case _BINARY_OP_MULTIPLY_INT:
0600 return 2;
0601 case _BINARY_OP_ADD_INT:
0602 return 2;
0603 case _BINARY_OP_SUBTRACT_INT:
0604 return 2;
0605 case _GUARD_BOTH_FLOAT:
0606 return 2;
0607 case _GUARD_NOS_FLOAT:
0608 return 2;
0609 case _GUARD_TOS_FLOAT:
0610 return 1;
0611 case _BINARY_OP_MULTIPLY_FLOAT:
0612 return 2;
0613 case _BINARY_OP_ADD_FLOAT:
0614 return 2;
0615 case _BINARY_OP_SUBTRACT_FLOAT:
0616 return 2;
0617 case _GUARD_BOTH_UNICODE:
0618 return 2;
0619 case _BINARY_OP_ADD_UNICODE:
0620 return 2;
0621 case _BINARY_SUBSCR:
0622 return 2;
0623 case _BINARY_SLICE:
0624 return 3;
0625 case _STORE_SLICE:
0626 return 4;
0627 case _BINARY_SUBSCR_LIST_INT:
0628 return 2;
0629 case _BINARY_SUBSCR_STR_INT:
0630 return 2;
0631 case _BINARY_SUBSCR_TUPLE_INT:
0632 return 2;
0633 case _BINARY_SUBSCR_DICT:
0634 return 2;
0635 case _LIST_APPEND:
0636 return 2 + (oparg-1);
0637 case _SET_ADD:
0638 return 2 + (oparg-1);
0639 case _STORE_SUBSCR:
0640 return 3;
0641 case _STORE_SUBSCR_LIST_INT:
0642 return 3;
0643 case _STORE_SUBSCR_DICT:
0644 return 3;
0645 case _DELETE_SUBSCR:
0646 return 2;
0647 case _CALL_INTRINSIC_1:
0648 return 1;
0649 case _CALL_INTRINSIC_2:
0650 return 2;
0651 case _POP_FRAME:
0652 return 1;
0653 case _GET_AITER:
0654 return 1;
0655 case _GET_ANEXT:
0656 return 1;
0657 case _GET_AWAITABLE:
0658 return 1;
0659 case _YIELD_VALUE:
0660 return 1;
0661 case _POP_EXCEPT:
0662 return 1;
0663 case _LOAD_ASSERTION_ERROR:
0664 return 0;
0665 case _LOAD_BUILD_CLASS:
0666 return 0;
0667 case _STORE_NAME:
0668 return 1;
0669 case _DELETE_NAME:
0670 return 0;
0671 case _UNPACK_SEQUENCE:
0672 return 1;
0673 case _UNPACK_SEQUENCE_TWO_TUPLE:
0674 return 1;
0675 case _UNPACK_SEQUENCE_TUPLE:
0676 return 1;
0677 case _UNPACK_SEQUENCE_LIST:
0678 return 1;
0679 case _UNPACK_EX:
0680 return 1;
0681 case _STORE_ATTR:
0682 return 2;
0683 case _DELETE_ATTR:
0684 return 1;
0685 case _STORE_GLOBAL:
0686 return 1;
0687 case _DELETE_GLOBAL:
0688 return 0;
0689 case _LOAD_LOCALS:
0690 return 0;
0691 case _LOAD_GLOBAL:
0692 return 0;
0693 case _GUARD_GLOBALS_VERSION:
0694 return 0;
0695 case _GUARD_BUILTINS_VERSION:
0696 return 0;
0697 case _LOAD_GLOBAL_MODULE:
0698 return 0;
0699 case _LOAD_GLOBAL_BUILTINS:
0700 return 0;
0701 case _DELETE_FAST:
0702 return 0;
0703 case _MAKE_CELL:
0704 return 0;
0705 case _DELETE_DEREF:
0706 return 0;
0707 case _LOAD_FROM_DICT_OR_DEREF:
0708 return 1;
0709 case _LOAD_DEREF:
0710 return 0;
0711 case _STORE_DEREF:
0712 return 1;
0713 case _COPY_FREE_VARS:
0714 return 0;
0715 case _BUILD_STRING:
0716 return oparg;
0717 case _BUILD_TUPLE:
0718 return oparg;
0719 case _BUILD_LIST:
0720 return oparg;
0721 case _LIST_EXTEND:
0722 return 2 + (oparg-1);
0723 case _SET_UPDATE:
0724 return 2 + (oparg-1);
0725 case _BUILD_MAP:
0726 return oparg*2;
0727 case _SETUP_ANNOTATIONS:
0728 return 0;
0729 case _BUILD_CONST_KEY_MAP:
0730 return 1 + oparg;
0731 case _DICT_UPDATE:
0732 return 2 + (oparg - 1);
0733 case _DICT_MERGE:
0734 return 5 + (oparg - 1);
0735 case _MAP_ADD:
0736 return 3 + (oparg - 1);
0737 case _LOAD_SUPER_ATTR_ATTR:
0738 return 3;
0739 case _LOAD_SUPER_ATTR_METHOD:
0740 return 3;
0741 case _LOAD_ATTR:
0742 return 1;
0743 case _GUARD_TYPE_VERSION:
0744 return 1;
0745 case _CHECK_MANAGED_OBJECT_HAS_VALUES:
0746 return 1;
0747 case _LOAD_ATTR_INSTANCE_VALUE_0:
0748 return 1;
0749 case _LOAD_ATTR_INSTANCE_VALUE_1:
0750 return 1;
0751 case _LOAD_ATTR_INSTANCE_VALUE:
0752 return 1;
0753 case _CHECK_ATTR_MODULE:
0754 return 1;
0755 case _LOAD_ATTR_MODULE:
0756 return 1;
0757 case _CHECK_ATTR_WITH_HINT:
0758 return 1;
0759 case _LOAD_ATTR_WITH_HINT:
0760 return 1;
0761 case _LOAD_ATTR_SLOT_0:
0762 return 1;
0763 case _LOAD_ATTR_SLOT_1:
0764 return 1;
0765 case _LOAD_ATTR_SLOT:
0766 return 1;
0767 case _CHECK_ATTR_CLASS:
0768 return 1;
0769 case _LOAD_ATTR_CLASS_0:
0770 return 1;
0771 case _LOAD_ATTR_CLASS_1:
0772 return 1;
0773 case _LOAD_ATTR_CLASS:
0774 return 1;
0775 case _GUARD_DORV_NO_DICT:
0776 return 1;
0777 case _STORE_ATTR_INSTANCE_VALUE:
0778 return 2;
0779 case _STORE_ATTR_SLOT:
0780 return 2;
0781 case _COMPARE_OP:
0782 return 2;
0783 case _COMPARE_OP_FLOAT:
0784 return 2;
0785 case _COMPARE_OP_INT:
0786 return 2;
0787 case _COMPARE_OP_STR:
0788 return 2;
0789 case _IS_OP:
0790 return 2;
0791 case _CONTAINS_OP:
0792 return 2;
0793 case _CONTAINS_OP_SET:
0794 return 2;
0795 case _CONTAINS_OP_DICT:
0796 return 2;
0797 case _CHECK_EG_MATCH:
0798 return 2;
0799 case _CHECK_EXC_MATCH:
0800 return 2;
0801 case _IS_NONE:
0802 return 1;
0803 case _GET_LEN:
0804 return 1;
0805 case _MATCH_CLASS:
0806 return 3;
0807 case _MATCH_MAPPING:
0808 return 1;
0809 case _MATCH_SEQUENCE:
0810 return 1;
0811 case _MATCH_KEYS:
0812 return 2;
0813 case _GET_ITER:
0814 return 1;
0815 case _GET_YIELD_FROM_ITER:
0816 return 1;
0817 case _FOR_ITER_TIER_TWO:
0818 return 1;
0819 case _ITER_CHECK_LIST:
0820 return 1;
0821 case _GUARD_NOT_EXHAUSTED_LIST:
0822 return 1;
0823 case _ITER_NEXT_LIST:
0824 return 1;
0825 case _ITER_CHECK_TUPLE:
0826 return 1;
0827 case _GUARD_NOT_EXHAUSTED_TUPLE:
0828 return 1;
0829 case _ITER_NEXT_TUPLE:
0830 return 1;
0831 case _ITER_CHECK_RANGE:
0832 return 1;
0833 case _GUARD_NOT_EXHAUSTED_RANGE:
0834 return 1;
0835 case _ITER_NEXT_RANGE:
0836 return 1;
0837 case _FOR_ITER_GEN_FRAME:
0838 return 1;
0839 case _WITH_EXCEPT_START:
0840 return 4;
0841 case _PUSH_EXC_INFO:
0842 return 1;
0843 case _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT:
0844 return 1;
0845 case _GUARD_KEYS_VERSION:
0846 return 1;
0847 case _LOAD_ATTR_METHOD_WITH_VALUES:
0848 return 1;
0849 case _LOAD_ATTR_METHOD_NO_DICT:
0850 return 1;
0851 case _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES:
0852 return 1;
0853 case _LOAD_ATTR_NONDESCRIPTOR_NO_DICT:
0854 return 1;
0855 case _CHECK_ATTR_METHOD_LAZY_DICT:
0856 return 1;
0857 case _LOAD_ATTR_METHOD_LAZY_DICT:
0858 return 1;
0859 case _CHECK_PERIODIC:
0860 return 0;
0861 case _PY_FRAME_GENERAL:
0862 return 2 + oparg;
0863 case _CHECK_FUNCTION_VERSION:
0864 return 2 + oparg;
0865 case _CHECK_METHOD_VERSION:
0866 return 2 + oparg;
0867 case _EXPAND_METHOD:
0868 return 2 + oparg;
0869 case _CHECK_IS_NOT_PY_CALLABLE:
0870 return 2 + oparg;
0871 case _CALL_NON_PY_GENERAL:
0872 return 2 + oparg;
0873 case _CHECK_CALL_BOUND_METHOD_EXACT_ARGS:
0874 return 2 + oparg;
0875 case _INIT_CALL_BOUND_METHOD_EXACT_ARGS:
0876 return 2 + oparg;
0877 case _CHECK_PEP_523:
0878 return 0;
0879 case _CHECK_FUNCTION_EXACT_ARGS:
0880 return 2 + oparg;
0881 case _CHECK_STACK_SPACE:
0882 return 2 + oparg;
0883 case _INIT_CALL_PY_EXACT_ARGS_0:
0884 return 2 + oparg;
0885 case _INIT_CALL_PY_EXACT_ARGS_1:
0886 return 2 + oparg;
0887 case _INIT_CALL_PY_EXACT_ARGS_2:
0888 return 2 + oparg;
0889 case _INIT_CALL_PY_EXACT_ARGS_3:
0890 return 2 + oparg;
0891 case _INIT_CALL_PY_EXACT_ARGS_4:
0892 return 2 + oparg;
0893 case _INIT_CALL_PY_EXACT_ARGS:
0894 return 2 + oparg;
0895 case _PUSH_FRAME:
0896 return 1;
0897 case _CALL_TYPE_1:
0898 return 3;
0899 case _CALL_STR_1:
0900 return 3;
0901 case _CALL_TUPLE_1:
0902 return 3;
0903 case _EXIT_INIT_CHECK:
0904 return 1;
0905 case _CALL_BUILTIN_CLASS:
0906 return 2 + oparg;
0907 case _CALL_BUILTIN_O:
0908 return 2 + oparg;
0909 case _CALL_BUILTIN_FAST:
0910 return 2 + oparg;
0911 case _CALL_BUILTIN_FAST_WITH_KEYWORDS:
0912 return 2 + oparg;
0913 case _CALL_LEN:
0914 return 2 + oparg;
0915 case _CALL_ISINSTANCE:
0916 return 2 + oparg;
0917 case _CALL_METHOD_DESCRIPTOR_O:
0918 return 2 + oparg;
0919 case _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS:
0920 return 2 + oparg;
0921 case _CALL_METHOD_DESCRIPTOR_NOARGS:
0922 return 2 + oparg;
0923 case _CALL_METHOD_DESCRIPTOR_FAST:
0924 return 2 + oparg;
0925 case _MAKE_FUNCTION:
0926 return 1;
0927 case _SET_FUNCTION_ATTRIBUTE:
0928 return 2;
0929 case _RETURN_GENERATOR:
0930 return 0;
0931 case _BUILD_SLICE:
0932 return 2 + ((oparg == 3) ? 1 : 0);
0933 case _CONVERT_VALUE:
0934 return 1;
0935 case _FORMAT_SIMPLE:
0936 return 1;
0937 case _FORMAT_WITH_SPEC:
0938 return 2;
0939 case _COPY:
0940 return 1 + (oparg-1);
0941 case _BINARY_OP:
0942 return 2;
0943 case _SWAP:
0944 return 2 + (oparg-2);
0945 case _GUARD_IS_TRUE_POP:
0946 return 1;
0947 case _GUARD_IS_FALSE_POP:
0948 return 1;
0949 case _GUARD_IS_NONE_POP:
0950 return 1;
0951 case _GUARD_IS_NOT_NONE_POP:
0952 return 1;
0953 case _JUMP_TO_TOP:
0954 return 0;
0955 case _SET_IP:
0956 return 0;
0957 case _CHECK_STACK_SPACE_OPERAND:
0958 return 0;
0959 case _SAVE_RETURN_OFFSET:
0960 return 0;
0961 case _EXIT_TRACE:
0962 return 0;
0963 case _CHECK_VALIDITY:
0964 return 0;
0965 case _LOAD_CONST_INLINE:
0966 return 0;
0967 case _LOAD_CONST_INLINE_BORROW:
0968 return 0;
0969 case _POP_TOP_LOAD_CONST_INLINE_BORROW:
0970 return 1;
0971 case _LOAD_CONST_INLINE_WITH_NULL:
0972 return 0;
0973 case _LOAD_CONST_INLINE_BORROW_WITH_NULL:
0974 return 0;
0975 case _CHECK_FUNCTION:
0976 return 0;
0977 case _INTERNAL_INCREMENT_OPT_COUNTER:
0978 return 1;
0979 case _COLD_EXIT:
0980 return 0;
0981 case _DYNAMIC_EXIT:
0982 return 0;
0983 case _START_EXECUTOR:
0984 return 0;
0985 case _FATAL_ERROR:
0986 return 0;
0987 case _CHECK_VALIDITY_AND_SET_IP:
0988 return 0;
0989 case _DEOPT:
0990 return 0;
0991 case _ERROR_POP_N:
0992 return oparg;
0993 case _TIER2_RESUME_CHECK:
0994 return 0;
0995 default:
0996 return -1;
0997 }
0998 }
0999
1000 #endif
1001
1002
1003 #ifdef __cplusplus
1004 }
1005 #endif
1006 #endif