Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-11-19 09:50:49

0001 // This file is generated by Tools/cases_generator/opcode_metadata_generator.py
0002 // from:
0003 //   Python/bytecodes.c
0004 // Do not edit!
0005 
0006 #ifndef Py_CORE_OPCODE_METADATA_H
0007 #define Py_CORE_OPCODE_METADATA_H
0008 #ifdef __cplusplus
0009 extern "C" {
0010 #endif
0011 
0012 #ifndef Py_BUILD_CORE
0013 #  error "this header requires Py_BUILD_CORE define"
0014 #endif
0015 
0016 #include <stdbool.h>              // bool
0017 #include "opcode_ids.h"
0018 
0019 
0020 #define IS_PSEUDO_INSTR(OP)  ( \
0021     ((OP) == LOAD_CLOSURE) || \
0022     ((OP) == STORE_FAST_MAYBE_NULL) || \
0023     ((OP) == LOAD_SUPER_METHOD) || \
0024     ((OP) == LOAD_ZERO_SUPER_METHOD) || \
0025     ((OP) == LOAD_ZERO_SUPER_ATTR) || \
0026     ((OP) == LOAD_METHOD) || \
0027     ((OP) == JUMP) || \
0028     ((OP) == JUMP_NO_INTERRUPT) || \
0029     ((OP) == SETUP_FINALLY) || \
0030     ((OP) == SETUP_CLEANUP) || \
0031     ((OP) == SETUP_WITH) || \
0032     ((OP) == POP_BLOCK) || \
0033     0)
0034 
0035 #include "pycore_uop_ids.h"
0036 extern int _PyOpcode_num_popped(int opcode, int oparg);
0037 #ifdef NEED_OPCODE_METADATA
0038 int _PyOpcode_num_popped(int opcode, int oparg)  {
0039     switch(opcode) {
0040         case BEFORE_ASYNC_WITH:
0041             return 1;
0042         case BEFORE_WITH:
0043             return 1;
0044         case BINARY_OP:
0045             return 2;
0046         case BINARY_OP_ADD_FLOAT:
0047             return 2;
0048         case BINARY_OP_ADD_INT:
0049             return 2;
0050         case BINARY_OP_ADD_UNICODE:
0051             return 2;
0052         case BINARY_OP_INPLACE_ADD_UNICODE:
0053             return 2;
0054         case BINARY_OP_MULTIPLY_FLOAT:
0055             return 2;
0056         case BINARY_OP_MULTIPLY_INT:
0057             return 2;
0058         case BINARY_OP_SUBTRACT_FLOAT:
0059             return 2;
0060         case BINARY_OP_SUBTRACT_INT:
0061             return 2;
0062         case BINARY_SLICE:
0063             return 3;
0064         case BINARY_SUBSCR:
0065             return 2;
0066         case BINARY_SUBSCR_DICT:
0067             return 2;
0068         case BINARY_SUBSCR_GETITEM:
0069             return 2;
0070         case BINARY_SUBSCR_LIST_INT:
0071             return 2;
0072         case BINARY_SUBSCR_STR_INT:
0073             return 2;
0074         case BINARY_SUBSCR_TUPLE_INT:
0075             return 2;
0076         case BUILD_CONST_KEY_MAP:
0077             return 1 + oparg;
0078         case BUILD_LIST:
0079             return oparg;
0080         case BUILD_MAP:
0081             return oparg*2;
0082         case BUILD_SET:
0083             return oparg;
0084         case BUILD_SLICE:
0085             return 2 + ((oparg == 3) ? 1 : 0);
0086         case BUILD_STRING:
0087             return oparg;
0088         case BUILD_TUPLE:
0089             return oparg;
0090         case CACHE:
0091             return 0;
0092         case CALL:
0093             return 2 + oparg;
0094         case CALL_ALLOC_AND_ENTER_INIT:
0095             return 2 + oparg;
0096         case CALL_BOUND_METHOD_EXACT_ARGS:
0097             return 2 + oparg;
0098         case CALL_BOUND_METHOD_GENERAL:
0099             return 2 + oparg;
0100         case CALL_BUILTIN_CLASS:
0101             return 2 + oparg;
0102         case CALL_BUILTIN_FAST:
0103             return 2 + oparg;
0104         case CALL_BUILTIN_FAST_WITH_KEYWORDS:
0105             return 2 + oparg;
0106         case CALL_BUILTIN_O:
0107             return 2 + oparg;
0108         case CALL_FUNCTION_EX:
0109             return 3 + (oparg & 1);
0110         case CALL_INTRINSIC_1:
0111             return 1;
0112         case CALL_INTRINSIC_2:
0113             return 2;
0114         case CALL_ISINSTANCE:
0115             return 2 + oparg;
0116         case CALL_KW:
0117             return 3 + oparg;
0118         case CALL_LEN:
0119             return 2 + oparg;
0120         case CALL_LIST_APPEND:
0121             return 3;
0122         case CALL_METHOD_DESCRIPTOR_FAST:
0123             return 2 + oparg;
0124         case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS:
0125             return 2 + oparg;
0126         case CALL_METHOD_DESCRIPTOR_NOARGS:
0127             return 2 + oparg;
0128         case CALL_METHOD_DESCRIPTOR_O:
0129             return 2 + oparg;
0130         case CALL_NON_PY_GENERAL:
0131             return 2 + oparg;
0132         case CALL_PY_EXACT_ARGS:
0133             return 2 + oparg;
0134         case CALL_PY_GENERAL:
0135             return 2 + oparg;
0136         case CALL_STR_1:
0137             return 3;
0138         case CALL_TUPLE_1:
0139             return 3;
0140         case CALL_TYPE_1:
0141             return 3;
0142         case CHECK_EG_MATCH:
0143             return 2;
0144         case CHECK_EXC_MATCH:
0145             return 2;
0146         case CLEANUP_THROW:
0147             return 3;
0148         case COMPARE_OP:
0149             return 2;
0150         case COMPARE_OP_FLOAT:
0151             return 2;
0152         case COMPARE_OP_INT:
0153             return 2;
0154         case COMPARE_OP_STR:
0155             return 2;
0156         case CONTAINS_OP:
0157             return 2;
0158         case CONTAINS_OP_DICT:
0159             return 2;
0160         case CONTAINS_OP_SET:
0161             return 2;
0162         case CONVERT_VALUE:
0163             return 1;
0164         case COPY:
0165             return 1 + (oparg-1);
0166         case COPY_FREE_VARS:
0167             return 0;
0168         case DELETE_ATTR:
0169             return 1;
0170         case DELETE_DEREF:
0171             return 0;
0172         case DELETE_FAST:
0173             return 0;
0174         case DELETE_GLOBAL:
0175             return 0;
0176         case DELETE_NAME:
0177             return 0;
0178         case DELETE_SUBSCR:
0179             return 2;
0180         case DICT_MERGE:
0181             return 5 + (oparg - 1);
0182         case DICT_UPDATE:
0183             return 2 + (oparg - 1);
0184         case END_ASYNC_FOR:
0185             return 2;
0186         case END_FOR:
0187             return 1;
0188         case END_SEND:
0189             return 2;
0190         case ENTER_EXECUTOR:
0191             return 0;
0192         case EXIT_INIT_CHECK:
0193             return 1;
0194         case EXTENDED_ARG:
0195             return 0;
0196         case FORMAT_SIMPLE:
0197             return 1;
0198         case FORMAT_WITH_SPEC:
0199             return 2;
0200         case FOR_ITER:
0201             return 1;
0202         case FOR_ITER_GEN:
0203             return 1;
0204         case FOR_ITER_LIST:
0205             return 1;
0206         case FOR_ITER_RANGE:
0207             return 1;
0208         case FOR_ITER_TUPLE:
0209             return 1;
0210         case GET_AITER:
0211             return 1;
0212         case GET_ANEXT:
0213             return 1;
0214         case GET_AWAITABLE:
0215             return 1;
0216         case GET_ITER:
0217             return 1;
0218         case GET_LEN:
0219             return 1;
0220         case GET_YIELD_FROM_ITER:
0221             return 1;
0222         case IMPORT_FROM:
0223             return 1;
0224         case IMPORT_NAME:
0225             return 2;
0226         case INSTRUMENTED_CALL:
0227             return 0;
0228         case INSTRUMENTED_CALL_FUNCTION_EX:
0229             return 0;
0230         case INSTRUMENTED_CALL_KW:
0231             return 0;
0232         case INSTRUMENTED_END_FOR:
0233             return 2;
0234         case INSTRUMENTED_END_SEND:
0235             return 2;
0236         case INSTRUMENTED_FOR_ITER:
0237             return 0;
0238         case INSTRUMENTED_INSTRUCTION:
0239             return 0;
0240         case INSTRUMENTED_JUMP_BACKWARD:
0241             return 0;
0242         case INSTRUMENTED_JUMP_FORWARD:
0243             return 0;
0244         case INSTRUMENTED_LOAD_SUPER_ATTR:
0245             return 3;
0246         case INSTRUMENTED_POP_JUMP_IF_FALSE:
0247             return 0;
0248         case INSTRUMENTED_POP_JUMP_IF_NONE:
0249             return 0;
0250         case INSTRUMENTED_POP_JUMP_IF_NOT_NONE:
0251             return 0;
0252         case INSTRUMENTED_POP_JUMP_IF_TRUE:
0253             return 0;
0254         case INSTRUMENTED_RESUME:
0255             return 0;
0256         case INSTRUMENTED_RETURN_CONST:
0257             return 0;
0258         case INSTRUMENTED_RETURN_VALUE:
0259             return 1;
0260         case INSTRUMENTED_YIELD_VALUE:
0261             return 1;
0262         case INTERPRETER_EXIT:
0263             return 1;
0264         case IS_OP:
0265             return 2;
0266         case JUMP_BACKWARD:
0267             return 0;
0268         case JUMP_BACKWARD_NO_INTERRUPT:
0269             return 0;
0270         case JUMP_FORWARD:
0271             return 0;
0272         case LIST_APPEND:
0273             return 2 + (oparg-1);
0274         case LIST_EXTEND:
0275             return 2 + (oparg-1);
0276         case LOAD_ASSERTION_ERROR:
0277             return 0;
0278         case LOAD_ATTR:
0279             return 1;
0280         case LOAD_ATTR_CLASS:
0281             return 1;
0282         case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN:
0283             return 1;
0284         case LOAD_ATTR_INSTANCE_VALUE:
0285             return 1;
0286         case LOAD_ATTR_METHOD_LAZY_DICT:
0287             return 1;
0288         case LOAD_ATTR_METHOD_NO_DICT:
0289             return 1;
0290         case LOAD_ATTR_METHOD_WITH_VALUES:
0291             return 1;
0292         case LOAD_ATTR_MODULE:
0293             return 1;
0294         case LOAD_ATTR_NONDESCRIPTOR_NO_DICT:
0295             return 1;
0296         case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES:
0297             return 1;
0298         case LOAD_ATTR_PROPERTY:
0299             return 1;
0300         case LOAD_ATTR_SLOT:
0301             return 1;
0302         case LOAD_ATTR_WITH_HINT:
0303             return 1;
0304         case LOAD_BUILD_CLASS:
0305             return 0;
0306         case LOAD_CONST:
0307             return 0;
0308         case LOAD_DEREF:
0309             return 0;
0310         case LOAD_FAST:
0311             return 0;
0312         case LOAD_FAST_AND_CLEAR:
0313             return 0;
0314         case LOAD_FAST_CHECK:
0315             return 0;
0316         case LOAD_FAST_LOAD_FAST:
0317             return 0;
0318         case LOAD_FROM_DICT_OR_DEREF:
0319             return 1;
0320         case LOAD_FROM_DICT_OR_GLOBALS:
0321             return 1;
0322         case LOAD_GLOBAL:
0323             return 0;
0324         case LOAD_GLOBAL_BUILTIN:
0325             return 0;
0326         case LOAD_GLOBAL_MODULE:
0327             return 0;
0328         case LOAD_LOCALS:
0329             return 0;
0330         case LOAD_NAME:
0331             return 0;
0332         case LOAD_SUPER_ATTR:
0333             return 3;
0334         case LOAD_SUPER_ATTR_ATTR:
0335             return 3;
0336         case LOAD_SUPER_ATTR_METHOD:
0337             return 3;
0338         case MAKE_CELL:
0339             return 0;
0340         case MAKE_FUNCTION:
0341             return 1;
0342         case MAP_ADD:
0343             return 3 + (oparg - 1);
0344         case MATCH_CLASS:
0345             return 3;
0346         case MATCH_KEYS:
0347             return 2;
0348         case MATCH_MAPPING:
0349             return 1;
0350         case MATCH_SEQUENCE:
0351             return 1;
0352         case NOP:
0353             return 0;
0354         case POP_EXCEPT:
0355             return 1;
0356         case POP_JUMP_IF_FALSE:
0357             return 1;
0358         case POP_JUMP_IF_NONE:
0359             return 1;
0360         case POP_JUMP_IF_NOT_NONE:
0361             return 1;
0362         case POP_JUMP_IF_TRUE:
0363             return 1;
0364         case POP_TOP:
0365             return 1;
0366         case PUSH_EXC_INFO:
0367             return 1;
0368         case PUSH_NULL:
0369             return 0;
0370         case RAISE_VARARGS:
0371             return oparg;
0372         case RERAISE:
0373             return 1 + oparg;
0374         case RESERVED:
0375             return 0;
0376         case RESUME:
0377             return 0;
0378         case RESUME_CHECK:
0379             return 0;
0380         case RETURN_CONST:
0381             return 0;
0382         case RETURN_GENERATOR:
0383             return 0;
0384         case RETURN_VALUE:
0385             return 1;
0386         case SEND:
0387             return 2;
0388         case SEND_GEN:
0389             return 2;
0390         case SETUP_ANNOTATIONS:
0391             return 0;
0392         case SET_ADD:
0393             return 2 + (oparg-1);
0394         case SET_FUNCTION_ATTRIBUTE:
0395             return 2;
0396         case SET_UPDATE:
0397             return 2 + (oparg-1);
0398         case STORE_ATTR:
0399             return 2;
0400         case STORE_ATTR_INSTANCE_VALUE:
0401             return 2;
0402         case STORE_ATTR_SLOT:
0403             return 2;
0404         case STORE_ATTR_WITH_HINT:
0405             return 2;
0406         case STORE_DEREF:
0407             return 1;
0408         case STORE_FAST:
0409             return 1;
0410         case STORE_FAST_LOAD_FAST:
0411             return 1;
0412         case STORE_FAST_STORE_FAST:
0413             return 2;
0414         case STORE_GLOBAL:
0415             return 1;
0416         case STORE_NAME:
0417             return 1;
0418         case STORE_SLICE:
0419             return 4;
0420         case STORE_SUBSCR:
0421             return 3;
0422         case STORE_SUBSCR_DICT:
0423             return 3;
0424         case STORE_SUBSCR_LIST_INT:
0425             return 3;
0426         case SWAP:
0427             return 2 + (oparg-2);
0428         case TO_BOOL:
0429             return 1;
0430         case TO_BOOL_ALWAYS_TRUE:
0431             return 1;
0432         case TO_BOOL_BOOL:
0433             return 1;
0434         case TO_BOOL_INT:
0435             return 1;
0436         case TO_BOOL_LIST:
0437             return 1;
0438         case TO_BOOL_NONE:
0439             return 1;
0440         case TO_BOOL_STR:
0441             return 1;
0442         case UNARY_INVERT:
0443             return 1;
0444         case UNARY_NEGATIVE:
0445             return 1;
0446         case UNARY_NOT:
0447             return 1;
0448         case UNPACK_EX:
0449             return 1;
0450         case UNPACK_SEQUENCE:
0451             return 1;
0452         case UNPACK_SEQUENCE_LIST:
0453             return 1;
0454         case UNPACK_SEQUENCE_TUPLE:
0455             return 1;
0456         case UNPACK_SEQUENCE_TWO_TUPLE:
0457             return 1;
0458         case WITH_EXCEPT_START:
0459             return 4;
0460         case YIELD_VALUE:
0461             return 1;
0462         default:
0463             return -1;
0464     }
0465 }
0466 
0467 #endif
0468 
0469 extern int _PyOpcode_num_pushed(int opcode, int oparg);
0470 #ifdef NEED_OPCODE_METADATA
0471 int _PyOpcode_num_pushed(int opcode, int oparg)  {
0472     switch(opcode) {
0473         case BEFORE_ASYNC_WITH:
0474             return 2;
0475         case BEFORE_WITH:
0476             return 2;
0477         case BINARY_OP:
0478             return 1;
0479         case BINARY_OP_ADD_FLOAT:
0480             return 1;
0481         case BINARY_OP_ADD_INT:
0482             return 1;
0483         case BINARY_OP_ADD_UNICODE:
0484             return 1;
0485         case BINARY_OP_INPLACE_ADD_UNICODE:
0486             return 0;
0487         case BINARY_OP_MULTIPLY_FLOAT:
0488             return 1;
0489         case BINARY_OP_MULTIPLY_INT:
0490             return 1;
0491         case BINARY_OP_SUBTRACT_FLOAT:
0492             return 1;
0493         case BINARY_OP_SUBTRACT_INT:
0494             return 1;
0495         case BINARY_SLICE:
0496             return 1;
0497         case BINARY_SUBSCR:
0498             return 1;
0499         case BINARY_SUBSCR_DICT:
0500             return 1;
0501         case BINARY_SUBSCR_GETITEM:
0502             return 1;
0503         case BINARY_SUBSCR_LIST_INT:
0504             return 1;
0505         case BINARY_SUBSCR_STR_INT:
0506             return 1;
0507         case BINARY_SUBSCR_TUPLE_INT:
0508             return 1;
0509         case BUILD_CONST_KEY_MAP:
0510             return 1;
0511         case BUILD_LIST:
0512             return 1;
0513         case BUILD_MAP:
0514             return 1;
0515         case BUILD_SET:
0516             return 1;
0517         case BUILD_SLICE:
0518             return 1;
0519         case BUILD_STRING:
0520             return 1;
0521         case BUILD_TUPLE:
0522             return 1;
0523         case CACHE:
0524             return 0;
0525         case CALL:
0526             return 1;
0527         case CALL_ALLOC_AND_ENTER_INIT:
0528             return 1;
0529         case CALL_BOUND_METHOD_EXACT_ARGS:
0530             return 0;
0531         case CALL_BOUND_METHOD_GENERAL:
0532             return 0;
0533         case CALL_BUILTIN_CLASS:
0534             return 1;
0535         case CALL_BUILTIN_FAST:
0536             return 1;
0537         case CALL_BUILTIN_FAST_WITH_KEYWORDS:
0538             return 1;
0539         case CALL_BUILTIN_O:
0540             return 1;
0541         case CALL_FUNCTION_EX:
0542             return 1;
0543         case CALL_INTRINSIC_1:
0544             return 1;
0545         case CALL_INTRINSIC_2:
0546             return 1;
0547         case CALL_ISINSTANCE:
0548             return 1;
0549         case CALL_KW:
0550             return 1;
0551         case CALL_LEN:
0552             return 1;
0553         case CALL_LIST_APPEND:
0554             return 1;
0555         case CALL_METHOD_DESCRIPTOR_FAST:
0556             return 1;
0557         case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS:
0558             return 1;
0559         case CALL_METHOD_DESCRIPTOR_NOARGS:
0560             return 1;
0561         case CALL_METHOD_DESCRIPTOR_O:
0562             return 1;
0563         case CALL_NON_PY_GENERAL:
0564             return 1;
0565         case CALL_PY_EXACT_ARGS:
0566             return 0;
0567         case CALL_PY_GENERAL:
0568             return 0;
0569         case CALL_STR_1:
0570             return 1;
0571         case CALL_TUPLE_1:
0572             return 1;
0573         case CALL_TYPE_1:
0574             return 1;
0575         case CHECK_EG_MATCH:
0576             return 2;
0577         case CHECK_EXC_MATCH:
0578             return 2;
0579         case CLEANUP_THROW:
0580             return 2;
0581         case COMPARE_OP:
0582             return 1;
0583         case COMPARE_OP_FLOAT:
0584             return 1;
0585         case COMPARE_OP_INT:
0586             return 1;
0587         case COMPARE_OP_STR:
0588             return 1;
0589         case CONTAINS_OP:
0590             return 1;
0591         case CONTAINS_OP_DICT:
0592             return 1;
0593         case CONTAINS_OP_SET:
0594             return 1;
0595         case CONVERT_VALUE:
0596             return 1;
0597         case COPY:
0598             return 2 + (oparg-1);
0599         case COPY_FREE_VARS:
0600             return 0;
0601         case DELETE_ATTR:
0602             return 0;
0603         case DELETE_DEREF:
0604             return 0;
0605         case DELETE_FAST:
0606             return 0;
0607         case DELETE_GLOBAL:
0608             return 0;
0609         case DELETE_NAME:
0610             return 0;
0611         case DELETE_SUBSCR:
0612             return 0;
0613         case DICT_MERGE:
0614             return 4 + (oparg - 1);
0615         case DICT_UPDATE:
0616             return 1 + (oparg - 1);
0617         case END_ASYNC_FOR:
0618             return 0;
0619         case END_FOR:
0620             return 0;
0621         case END_SEND:
0622             return 1;
0623         case ENTER_EXECUTOR:
0624             return 0;
0625         case EXIT_INIT_CHECK:
0626             return 0;
0627         case EXTENDED_ARG:
0628             return 0;
0629         case FORMAT_SIMPLE:
0630             return 1;
0631         case FORMAT_WITH_SPEC:
0632             return 1;
0633         case FOR_ITER:
0634             return 2;
0635         case FOR_ITER_GEN:
0636             return 1;
0637         case FOR_ITER_LIST:
0638             return 2;
0639         case FOR_ITER_RANGE:
0640             return 2;
0641         case FOR_ITER_TUPLE:
0642             return 2;
0643         case GET_AITER:
0644             return 1;
0645         case GET_ANEXT:
0646             return 2;
0647         case GET_AWAITABLE:
0648             return 1;
0649         case GET_ITER:
0650             return 1;
0651         case GET_LEN:
0652             return 2;
0653         case GET_YIELD_FROM_ITER:
0654             return 1;
0655         case IMPORT_FROM:
0656             return 2;
0657         case IMPORT_NAME:
0658             return 1;
0659         case INSTRUMENTED_CALL:
0660             return 0;
0661         case INSTRUMENTED_CALL_FUNCTION_EX:
0662             return 0;
0663         case INSTRUMENTED_CALL_KW:
0664             return 0;
0665         case INSTRUMENTED_END_FOR:
0666             return 1;
0667         case INSTRUMENTED_END_SEND:
0668             return 1;
0669         case INSTRUMENTED_FOR_ITER:
0670             return 0;
0671         case INSTRUMENTED_INSTRUCTION:
0672             return 0;
0673         case INSTRUMENTED_JUMP_BACKWARD:
0674             return 0;
0675         case INSTRUMENTED_JUMP_FORWARD:
0676             return 0;
0677         case INSTRUMENTED_LOAD_SUPER_ATTR:
0678             return 1 + (oparg & 1);
0679         case INSTRUMENTED_POP_JUMP_IF_FALSE:
0680             return 0;
0681         case INSTRUMENTED_POP_JUMP_IF_NONE:
0682             return 0;
0683         case INSTRUMENTED_POP_JUMP_IF_NOT_NONE:
0684             return 0;
0685         case INSTRUMENTED_POP_JUMP_IF_TRUE:
0686             return 0;
0687         case INSTRUMENTED_RESUME:
0688             return 0;
0689         case INSTRUMENTED_RETURN_CONST:
0690             return 0;
0691         case INSTRUMENTED_RETURN_VALUE:
0692             return 0;
0693         case INSTRUMENTED_YIELD_VALUE:
0694             return 1;
0695         case INTERPRETER_EXIT:
0696             return 0;
0697         case IS_OP:
0698             return 1;
0699         case JUMP_BACKWARD:
0700             return 0;
0701         case JUMP_BACKWARD_NO_INTERRUPT:
0702             return 0;
0703         case JUMP_FORWARD:
0704             return 0;
0705         case LIST_APPEND:
0706             return 1 + (oparg-1);
0707         case LIST_EXTEND:
0708             return 1 + (oparg-1);
0709         case LOAD_ASSERTION_ERROR:
0710             return 1;
0711         case LOAD_ATTR:
0712             return 1 + (oparg & 1);
0713         case LOAD_ATTR_CLASS:
0714             return 1 + (oparg & 1);
0715         case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN:
0716             return 1;
0717         case LOAD_ATTR_INSTANCE_VALUE:
0718             return 1 + (oparg & 1);
0719         case LOAD_ATTR_METHOD_LAZY_DICT:
0720             return 2;
0721         case LOAD_ATTR_METHOD_NO_DICT:
0722             return 2;
0723         case LOAD_ATTR_METHOD_WITH_VALUES:
0724             return 2;
0725         case LOAD_ATTR_MODULE:
0726             return 1 + (oparg & 1);
0727         case LOAD_ATTR_NONDESCRIPTOR_NO_DICT:
0728             return 1;
0729         case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES:
0730             return 1;
0731         case LOAD_ATTR_PROPERTY:
0732             return 1;
0733         case LOAD_ATTR_SLOT:
0734             return 1 + (oparg & 1);
0735         case LOAD_ATTR_WITH_HINT:
0736             return 1 + (oparg & 1);
0737         case LOAD_BUILD_CLASS:
0738             return 1;
0739         case LOAD_CONST:
0740             return 1;
0741         case LOAD_DEREF:
0742             return 1;
0743         case LOAD_FAST:
0744             return 1;
0745         case LOAD_FAST_AND_CLEAR:
0746             return 1;
0747         case LOAD_FAST_CHECK:
0748             return 1;
0749         case LOAD_FAST_LOAD_FAST:
0750             return 2;
0751         case LOAD_FROM_DICT_OR_DEREF:
0752             return 1;
0753         case LOAD_FROM_DICT_OR_GLOBALS:
0754             return 1;
0755         case LOAD_GLOBAL:
0756             return 1 + (oparg & 1);
0757         case LOAD_GLOBAL_BUILTIN:
0758             return 1 + (oparg & 1);
0759         case LOAD_GLOBAL_MODULE:
0760             return 1 + (oparg & 1);
0761         case LOAD_LOCALS:
0762             return 1;
0763         case LOAD_NAME:
0764             return 1;
0765         case LOAD_SUPER_ATTR:
0766             return 1 + (oparg & 1);
0767         case LOAD_SUPER_ATTR_ATTR:
0768             return 1;
0769         case LOAD_SUPER_ATTR_METHOD:
0770             return 2;
0771         case MAKE_CELL:
0772             return 0;
0773         case MAKE_FUNCTION:
0774             return 1;
0775         case MAP_ADD:
0776             return 1 + (oparg - 1);
0777         case MATCH_CLASS:
0778             return 1;
0779         case MATCH_KEYS:
0780             return 3;
0781         case MATCH_MAPPING:
0782             return 2;
0783         case MATCH_SEQUENCE:
0784             return 2;
0785         case NOP:
0786             return 0;
0787         case POP_EXCEPT:
0788             return 0;
0789         case POP_JUMP_IF_FALSE:
0790             return 0;
0791         case POP_JUMP_IF_NONE:
0792             return 0;
0793         case POP_JUMP_IF_NOT_NONE:
0794             return 0;
0795         case POP_JUMP_IF_TRUE:
0796             return 0;
0797         case POP_TOP:
0798             return 0;
0799         case PUSH_EXC_INFO:
0800             return 2;
0801         case PUSH_NULL:
0802             return 1;
0803         case RAISE_VARARGS:
0804             return 0;
0805         case RERAISE:
0806             return oparg;
0807         case RESERVED:
0808             return 0;
0809         case RESUME:
0810             return 0;
0811         case RESUME_CHECK:
0812             return 0;
0813         case RETURN_CONST:
0814             return 0;
0815         case RETURN_GENERATOR:
0816             return 1;
0817         case RETURN_VALUE:
0818             return 0;
0819         case SEND:
0820             return 2;
0821         case SEND_GEN:
0822             return 2;
0823         case SETUP_ANNOTATIONS:
0824             return 0;
0825         case SET_ADD:
0826             return 1 + (oparg-1);
0827         case SET_FUNCTION_ATTRIBUTE:
0828             return 1;
0829         case SET_UPDATE:
0830             return 1 + (oparg-1);
0831         case STORE_ATTR:
0832             return 0;
0833         case STORE_ATTR_INSTANCE_VALUE:
0834             return 0;
0835         case STORE_ATTR_SLOT:
0836             return 0;
0837         case STORE_ATTR_WITH_HINT:
0838             return 0;
0839         case STORE_DEREF:
0840             return 0;
0841         case STORE_FAST:
0842             return 0;
0843         case STORE_FAST_LOAD_FAST:
0844             return 1;
0845         case STORE_FAST_STORE_FAST:
0846             return 0;
0847         case STORE_GLOBAL:
0848             return 0;
0849         case STORE_NAME:
0850             return 0;
0851         case STORE_SLICE:
0852             return 0;
0853         case STORE_SUBSCR:
0854             return 0;
0855         case STORE_SUBSCR_DICT:
0856             return 0;
0857         case STORE_SUBSCR_LIST_INT:
0858             return 0;
0859         case SWAP:
0860             return 2 + (oparg-2);
0861         case TO_BOOL:
0862             return 1;
0863         case TO_BOOL_ALWAYS_TRUE:
0864             return 1;
0865         case TO_BOOL_BOOL:
0866             return 1;
0867         case TO_BOOL_INT:
0868             return 1;
0869         case TO_BOOL_LIST:
0870             return 1;
0871         case TO_BOOL_NONE:
0872             return 1;
0873         case TO_BOOL_STR:
0874             return 1;
0875         case UNARY_INVERT:
0876             return 1;
0877         case UNARY_NEGATIVE:
0878             return 1;
0879         case UNARY_NOT:
0880             return 1;
0881         case UNPACK_EX:
0882             return 1 + (oparg >> 8) + (oparg & 0xFF);
0883         case UNPACK_SEQUENCE:
0884             return oparg;
0885         case UNPACK_SEQUENCE_LIST:
0886             return oparg;
0887         case UNPACK_SEQUENCE_TUPLE:
0888             return oparg;
0889         case UNPACK_SEQUENCE_TWO_TUPLE:
0890             return 2;
0891         case WITH_EXCEPT_START:
0892             return 5;
0893         case YIELD_VALUE:
0894             return 1;
0895         default:
0896             return -1;
0897     }
0898 }
0899 
0900 #endif
0901 
0902 enum InstructionFormat {
0903     INSTR_FMT_IB = 1,
0904     INSTR_FMT_IBC = 2,
0905     INSTR_FMT_IBC00 = 3,
0906     INSTR_FMT_IBC000 = 4,
0907     INSTR_FMT_IBC00000000 = 5,
0908     INSTR_FMT_IX = 6,
0909     INSTR_FMT_IXC = 7,
0910     INSTR_FMT_IXC00 = 8,
0911     INSTR_FMT_IXC000 = 9,
0912 };
0913 
0914 #define IS_VALID_OPCODE(OP) \
0915     (((OP) >= 0) && ((OP) < 268) && \
0916      (_PyOpcode_opcode_metadata[(OP)].valid_entry))
0917 
0918 #define HAS_ARG_FLAG (1)
0919 #define HAS_CONST_FLAG (2)
0920 #define HAS_NAME_FLAG (4)
0921 #define HAS_JUMP_FLAG (8)
0922 #define HAS_FREE_FLAG (16)
0923 #define HAS_LOCAL_FLAG (32)
0924 #define HAS_EVAL_BREAK_FLAG (64)
0925 #define HAS_DEOPT_FLAG (128)
0926 #define HAS_ERROR_FLAG (256)
0927 #define HAS_ESCAPES_FLAG (512)
0928 #define HAS_EXIT_FLAG (1024)
0929 #define HAS_PURE_FLAG (2048)
0930 #define HAS_PASSTHROUGH_FLAG (4096)
0931 #define HAS_OPARG_AND_1_FLAG (8192)
0932 #define HAS_ERROR_NO_POP_FLAG (16384)
0933 #define OPCODE_HAS_ARG(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ARG_FLAG))
0934 #define OPCODE_HAS_CONST(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_CONST_FLAG))
0935 #define OPCODE_HAS_NAME(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_NAME_FLAG))
0936 #define OPCODE_HAS_JUMP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_JUMP_FLAG))
0937 #define OPCODE_HAS_FREE(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_FREE_FLAG))
0938 #define OPCODE_HAS_LOCAL(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_LOCAL_FLAG))
0939 #define OPCODE_HAS_EVAL_BREAK(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_EVAL_BREAK_FLAG))
0940 #define OPCODE_HAS_DEOPT(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_DEOPT_FLAG))
0941 #define OPCODE_HAS_ERROR(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ERROR_FLAG))
0942 #define OPCODE_HAS_ESCAPES(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ESCAPES_FLAG))
0943 #define OPCODE_HAS_EXIT(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_EXIT_FLAG))
0944 #define OPCODE_HAS_PURE(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PURE_FLAG))
0945 #define OPCODE_HAS_PASSTHROUGH(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PASSTHROUGH_FLAG))
0946 #define OPCODE_HAS_OPARG_AND_1(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_OPARG_AND_1_FLAG))
0947 #define OPCODE_HAS_ERROR_NO_POP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ERROR_NO_POP_FLAG))
0948 
0949 #define OPARG_FULL 0
0950 #define OPARG_CACHE_1 1
0951 #define OPARG_CACHE_2 2
0952 #define OPARG_CACHE_4 4
0953 #define OPARG_TOP 5
0954 #define OPARG_BOTTOM 6
0955 #define OPARG_SAVE_RETURN_OFFSET 7
0956 #define OPARG_REPLACED 9
0957 
0958 struct opcode_metadata {
0959     uint8_t valid_entry;
0960     int8_t instr_format;
0961     int16_t flags;
0962 };
0963 
0964 extern const struct opcode_metadata _PyOpcode_opcode_metadata[268];
0965 #ifdef NEED_OPCODE_METADATA
0966 const struct opcode_metadata _PyOpcode_opcode_metadata[268] = {
0967     [BEFORE_ASYNC_WITH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
0968     [BEFORE_WITH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
0969     [BINARY_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0970     [BINARY_OP_ADD_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG },
0971     [BINARY_OP_ADD_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG },
0972     [BINARY_OP_ADD_UNICODE] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG },
0973     [BINARY_OP_INPLACE_ADD_UNICODE] = { true, INSTR_FMT_IXC, HAS_LOCAL_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0974     [BINARY_OP_MULTIPLY_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG },
0975     [BINARY_OP_MULTIPLY_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG },
0976     [BINARY_OP_SUBTRACT_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG },
0977     [BINARY_OP_SUBTRACT_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG },
0978     [BINARY_SLICE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0979     [BINARY_SUBSCR] = { true, INSTR_FMT_IXC, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0980     [BINARY_SUBSCR_DICT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0981     [BINARY_SUBSCR_GETITEM] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG },
0982     [BINARY_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG },
0983     [BINARY_SUBSCR_STR_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG },
0984     [BINARY_SUBSCR_TUPLE_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG },
0985     [BUILD_CONST_KEY_MAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0986     [BUILD_LIST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG },
0987     [BUILD_MAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0988     [BUILD_SET] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
0989     [BUILD_SLICE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG },
0990     [BUILD_STRING] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG },
0991     [BUILD_TUPLE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG },
0992     [CACHE] = { true, INSTR_FMT_IX, 0 },
0993     [CALL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
0994     [CALL_ALLOC_AND_ENTER_INIT] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
0995     [CALL_BOUND_METHOD_EXACT_ARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
0996     [CALL_BOUND_METHOD_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
0997     [CALL_BUILTIN_CLASS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0998     [CALL_BUILTIN_FAST] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
0999     [CALL_BUILTIN_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1000     [CALL_BUILTIN_O] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1001     [CALL_FUNCTION_EX] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1002     [CALL_INTRINSIC_1] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1003     [CALL_INTRINSIC_2] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1004     [CALL_ISINSTANCE] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1005     [CALL_KW] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1006     [CALL_LEN] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1007     [CALL_LIST_APPEND] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG },
1008     [CALL_METHOD_DESCRIPTOR_FAST] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1009     [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1010     [CALL_METHOD_DESCRIPTOR_NOARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1011     [CALL_METHOD_DESCRIPTOR_O] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1012     [CALL_NON_PY_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1013     [CALL_PY_EXACT_ARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1014     [CALL_PY_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1015     [CALL_STR_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1016     [CALL_TUPLE_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1017     [CALL_TYPE_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1018     [CHECK_EG_MATCH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1019     [CHECK_EXC_MATCH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1020     [CLEANUP_THROW] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1021     [COMPARE_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1022     [COMPARE_OP_FLOAT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EXIT_FLAG },
1023     [COMPARE_OP_INT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1024     [COMPARE_OP_STR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EXIT_FLAG },
1025     [CONTAINS_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1026     [CONTAINS_OP_DICT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1027     [CONTAINS_OP_SET] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1028     [CONVERT_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG },
1029     [COPY] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_PURE_FLAG },
1030     [COPY_FREE_VARS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
1031     [DELETE_ATTR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1032     [DELETE_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1033     [DELETE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1034     [DELETE_GLOBAL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1035     [DELETE_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1036     [DELETE_SUBSCR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1037     [DICT_MERGE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1038     [DICT_UPDATE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1039     [END_ASYNC_FOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1040     [END_FOR] = { true, INSTR_FMT_IX, HAS_PURE_FLAG },
1041     [END_SEND] = { true, INSTR_FMT_IX, HAS_PURE_FLAG },
1042     [ENTER_EXECUTOR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
1043     [EXIT_INIT_CHECK] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1044     [EXTENDED_ARG] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
1045     [FORMAT_SIMPLE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1046     [FORMAT_WITH_SPEC] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1047     [FOR_ITER] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1048     [FOR_ITER_GEN] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1049     [FOR_ITER_LIST] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG },
1050     [FOR_ITER_RANGE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG },
1051     [FOR_ITER_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG },
1052     [GET_AITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1053     [GET_ANEXT] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1054     [GET_AWAITABLE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1055     [GET_ITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1056     [GET_LEN] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1057     [GET_YIELD_FROM_ITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1058     [IMPORT_FROM] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1059     [IMPORT_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1060     [INSTRUMENTED_CALL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1061     [INSTRUMENTED_CALL_FUNCTION_EX] = { true, INSTR_FMT_IX, 0 },
1062     [INSTRUMENTED_CALL_KW] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1063     [INSTRUMENTED_END_FOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG },
1064     [INSTRUMENTED_END_SEND] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG },
1065     [INSTRUMENTED_FOR_ITER] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1066     [INSTRUMENTED_INSTRUCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1067     [INSTRUMENTED_JUMP_BACKWARD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG },
1068     [INSTRUMENTED_JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
1069     [INSTRUMENTED_LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
1070     [INSTRUMENTED_POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
1071     [INSTRUMENTED_POP_JUMP_IF_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
1072     [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
1073     [INSTRUMENTED_POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
1074     [INSTRUMENTED_RESUME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1075     [INSTRUMENTED_RETURN_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1076     [INSTRUMENTED_RETURN_VALUE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1077     [INSTRUMENTED_YIELD_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1078     [INTERPRETER_EXIT] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG },
1079     [IS_OP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
1080     [JUMP_BACKWARD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1081     [JUMP_BACKWARD_NO_INTERRUPT] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_JUMP_FLAG },
1082     [JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_JUMP_FLAG },
1083     [LIST_APPEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG },
1084     [LIST_EXTEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1085     [LOAD_ASSERTION_ERROR] = { true, INSTR_FMT_IX, 0 },
1086     [LOAD_ATTR] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1087     [LOAD_ATTR_CLASS] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1088     [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG },
1089     [LOAD_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1090     [LOAD_ATTR_METHOD_LAZY_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1091     [LOAD_ATTR_METHOD_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG },
1092     [LOAD_ATTR_METHOD_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1093     [LOAD_ATTR_MODULE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1094     [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG },
1095     [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1096     [LOAD_ATTR_PROPERTY] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG },
1097     [LOAD_ATTR_SLOT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1098     [LOAD_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1099     [LOAD_BUILD_CLASS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1100     [LOAD_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG },
1101     [LOAD_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1102     [LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG },
1103     [LOAD_FAST_AND_CLEAR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG },
1104     [LOAD_FAST_CHECK] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1105     [LOAD_FAST_LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG },
1106     [LOAD_FROM_DICT_OR_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1107     [LOAD_FROM_DICT_OR_GLOBALS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1108     [LOAD_GLOBAL] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1109     [LOAD_GLOBAL_BUILTIN] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1110     [LOAD_GLOBAL_MODULE] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1111     [LOAD_LOCALS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1112     [LOAD_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1113     [LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1114     [LOAD_SUPER_ATTR_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1115     [LOAD_SUPER_ATTR_METHOD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1116     [MAKE_CELL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG },
1117     [MAKE_FUNCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1118     [MAP_ADD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1119     [MATCH_CLASS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1120     [MATCH_KEYS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1121     [MATCH_MAPPING] = { true, INSTR_FMT_IX, 0 },
1122     [MATCH_SEQUENCE] = { true, INSTR_FMT_IX, 0 },
1123     [NOP] = { true, INSTR_FMT_IX, HAS_PURE_FLAG },
1124     [POP_EXCEPT] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG },
1125     [POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG },
1126     [POP_JUMP_IF_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG },
1127     [POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG },
1128     [POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG },
1129     [POP_TOP] = { true, INSTR_FMT_IX, HAS_PURE_FLAG },
1130     [PUSH_EXC_INFO] = { true, INSTR_FMT_IX, 0 },
1131     [PUSH_NULL] = { true, INSTR_FMT_IX, HAS_PURE_FLAG },
1132     [RAISE_VARARGS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1133     [RERAISE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1134     [RESERVED] = { true, INSTR_FMT_IX, 0 },
1135     [RESUME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1136     [RESUME_CHECK] = { true, INSTR_FMT_IX, HAS_DEOPT_FLAG },
1137     [RETURN_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG },
1138     [RETURN_GENERATOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1139     [RETURN_VALUE] = { true, INSTR_FMT_IX, 0 },
1140     [SEND] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG },
1141     [SEND_GEN] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1142     [SETUP_ANNOTATIONS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1143     [SET_ADD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1144     [SET_FUNCTION_ATTRIBUTE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ESCAPES_FLAG },
1145     [SET_UPDATE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1146     [STORE_ATTR] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1147     [STORE_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IXC000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG },
1148     [STORE_ATTR_SLOT] = { true, INSTR_FMT_IXC000, HAS_EXIT_FLAG },
1149     [STORE_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG },
1150     [STORE_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ESCAPES_FLAG },
1151     [STORE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG },
1152     [STORE_FAST_LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG },
1153     [STORE_FAST_STORE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG },
1154     [STORE_GLOBAL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1155     [STORE_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1156     [STORE_SLICE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1157     [STORE_SUBSCR] = { true, INSTR_FMT_IXC, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1158     [STORE_SUBSCR_DICT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1159     [STORE_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG },
1160     [SWAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_PURE_FLAG },
1161     [TO_BOOL] = { true, INSTR_FMT_IXC00, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1162     [TO_BOOL_ALWAYS_TRUE] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG },
1163     [TO_BOOL_BOOL] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG },
1164     [TO_BOOL_INT] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG | HAS_ESCAPES_FLAG },
1165     [TO_BOOL_LIST] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG },
1166     [TO_BOOL_NONE] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG },
1167     [TO_BOOL_STR] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG | HAS_ESCAPES_FLAG },
1168     [UNARY_INVERT] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1169     [UNARY_NEGATIVE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1170     [UNARY_NOT] = { true, INSTR_FMT_IX, HAS_PURE_FLAG },
1171     [UNPACK_EX] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1172     [UNPACK_SEQUENCE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1173     [UNPACK_SEQUENCE_LIST] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1174     [UNPACK_SEQUENCE_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1175     [UNPACK_SEQUENCE_TWO_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG },
1176     [WITH_EXCEPT_START] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1177     [YIELD_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ESCAPES_FLAG },
1178     [JUMP] = { true, -1, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1179     [JUMP_NO_INTERRUPT] = { true, -1, HAS_ARG_FLAG | HAS_JUMP_FLAG },
1180     [LOAD_CLOSURE] = { true, -1, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG },
1181     [LOAD_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1182     [LOAD_SUPER_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1183     [LOAD_ZERO_SUPER_ATTR] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1184     [LOAD_ZERO_SUPER_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
1185     [POP_BLOCK] = { true, -1, HAS_PURE_FLAG },
1186     [SETUP_CLEANUP] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG },
1187     [SETUP_FINALLY] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG },
1188     [SETUP_WITH] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG },
1189     [STORE_FAST_MAYBE_NULL] = { true, -1, HAS_ARG_FLAG | HAS_LOCAL_FLAG },
1190 };
1191 #endif
1192 
1193 #define MAX_UOP_PER_EXPANSION 8
1194 struct opcode_macro_expansion {
1195     int nuops;
1196     struct { int16_t uop; int8_t size; int8_t offset; } uops[MAX_UOP_PER_EXPANSION];
1197 };
1198 extern const struct opcode_macro_expansion _PyOpcode_macro_expansion[256];
1199 
1200 #ifdef NEED_OPCODE_METADATA
1201 const struct opcode_macro_expansion
1202 _PyOpcode_macro_expansion[256] = {
1203     [BINARY_OP] = { .nuops = 1, .uops = { { _BINARY_OP, 0, 0 } } },
1204     [BINARY_OP_ADD_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_ADD_FLOAT, 0, 0 } } },
1205     [BINARY_OP_ADD_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_ADD_INT, 0, 0 } } },
1206     [BINARY_OP_ADD_UNICODE] = { .nuops = 2, .uops = { { _GUARD_BOTH_UNICODE, 0, 0 }, { _BINARY_OP_ADD_UNICODE, 0, 0 } } },
1207     [BINARY_OP_MULTIPLY_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_MULTIPLY_FLOAT, 0, 0 } } },
1208     [BINARY_OP_MULTIPLY_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_MULTIPLY_INT, 0, 0 } } },
1209     [BINARY_OP_SUBTRACT_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_SUBTRACT_FLOAT, 0, 0 } } },
1210     [BINARY_OP_SUBTRACT_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_SUBTRACT_INT, 0, 0 } } },
1211     [BINARY_SLICE] = { .nuops = 1, .uops = { { _BINARY_SLICE, 0, 0 } } },
1212     [BINARY_SUBSCR] = { .nuops = 1, .uops = { { _BINARY_SUBSCR, 0, 0 } } },
1213     [BINARY_SUBSCR_DICT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_DICT, 0, 0 } } },
1214     [BINARY_SUBSCR_LIST_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_LIST_INT, 0, 0 } } },
1215     [BINARY_SUBSCR_STR_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_STR_INT, 0, 0 } } },
1216     [BINARY_SUBSCR_TUPLE_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_TUPLE_INT, 0, 0 } } },
1217     [BUILD_CONST_KEY_MAP] = { .nuops = 1, .uops = { { _BUILD_CONST_KEY_MAP, 0, 0 } } },
1218     [BUILD_LIST] = { .nuops = 1, .uops = { { _BUILD_LIST, 0, 0 } } },
1219     [BUILD_MAP] = { .nuops = 1, .uops = { { _BUILD_MAP, 0, 0 } } },
1220     [BUILD_SLICE] = { .nuops = 1, .uops = { { _BUILD_SLICE, 0, 0 } } },
1221     [BUILD_STRING] = { .nuops = 1, .uops = { { _BUILD_STRING, 0, 0 } } },
1222     [BUILD_TUPLE] = { .nuops = 1, .uops = { { _BUILD_TUPLE, 0, 0 } } },
1223     [CALL_BOUND_METHOD_EXACT_ARGS] = { .nuops = 8, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_CALL_BOUND_METHOD_EXACT_ARGS, 0, 0 }, { _INIT_CALL_BOUND_METHOD_EXACT_ARGS, 0, 0 }, { _CHECK_FUNCTION_EXACT_ARGS, 2, 1 }, { _CHECK_STACK_SPACE, 0, 0 }, { _INIT_CALL_PY_EXACT_ARGS, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } },
1224     [CALL_BOUND_METHOD_GENERAL] = { .nuops = 6, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_METHOD_VERSION, 2, 1 }, { _EXPAND_METHOD, 0, 0 }, { _PY_FRAME_GENERAL, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } },
1225     [CALL_BUILTIN_CLASS] = { .nuops = 2, .uops = { { _CALL_BUILTIN_CLASS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1226     [CALL_BUILTIN_FAST] = { .nuops = 2, .uops = { { _CALL_BUILTIN_FAST, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1227     [CALL_BUILTIN_FAST_WITH_KEYWORDS] = { .nuops = 2, .uops = { { _CALL_BUILTIN_FAST_WITH_KEYWORDS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1228     [CALL_BUILTIN_O] = { .nuops = 2, .uops = { { _CALL_BUILTIN_O, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1229     [CALL_INTRINSIC_1] = { .nuops = 1, .uops = { { _CALL_INTRINSIC_1, 0, 0 } } },
1230     [CALL_INTRINSIC_2] = { .nuops = 1, .uops = { { _CALL_INTRINSIC_2, 0, 0 } } },
1231     [CALL_ISINSTANCE] = { .nuops = 1, .uops = { { _CALL_ISINSTANCE, 0, 0 } } },
1232     [CALL_LEN] = { .nuops = 1, .uops = { { _CALL_LEN, 0, 0 } } },
1233     [CALL_METHOD_DESCRIPTOR_FAST] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_FAST, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1234     [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1235     [CALL_METHOD_DESCRIPTOR_NOARGS] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_NOARGS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1236     [CALL_METHOD_DESCRIPTOR_O] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_O, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1237     [CALL_NON_PY_GENERAL] = { .nuops = 3, .uops = { { _CHECK_IS_NOT_PY_CALLABLE, 0, 0 }, { _CALL_NON_PY_GENERAL, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1238     [CALL_PY_EXACT_ARGS] = { .nuops = 6, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_FUNCTION_EXACT_ARGS, 2, 1 }, { _CHECK_STACK_SPACE, 0, 0 }, { _INIT_CALL_PY_EXACT_ARGS, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } },
1239     [CALL_PY_GENERAL] = { .nuops = 5, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_FUNCTION_VERSION, 2, 1 }, { _PY_FRAME_GENERAL, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } },
1240     [CALL_STR_1] = { .nuops = 2, .uops = { { _CALL_STR_1, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1241     [CALL_TUPLE_1] = { .nuops = 2, .uops = { { _CALL_TUPLE_1, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } },
1242     [CALL_TYPE_1] = { .nuops = 1, .uops = { { _CALL_TYPE_1, 0, 0 } } },
1243     [CHECK_EG_MATCH] = { .nuops = 1, .uops = { { _CHECK_EG_MATCH, 0, 0 } } },
1244     [CHECK_EXC_MATCH] = { .nuops = 1, .uops = { { _CHECK_EXC_MATCH, 0, 0 } } },
1245     [COMPARE_OP] = { .nuops = 1, .uops = { { _COMPARE_OP, 0, 0 } } },
1246     [COMPARE_OP_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _COMPARE_OP_FLOAT, 0, 0 } } },
1247     [COMPARE_OP_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _COMPARE_OP_INT, 0, 0 } } },
1248     [COMPARE_OP_STR] = { .nuops = 2, .uops = { { _GUARD_BOTH_UNICODE, 0, 0 }, { _COMPARE_OP_STR, 0, 0 } } },
1249     [CONTAINS_OP] = { .nuops = 1, .uops = { { _CONTAINS_OP, 0, 0 } } },
1250     [CONTAINS_OP_DICT] = { .nuops = 1, .uops = { { _CONTAINS_OP_DICT, 0, 0 } } },
1251     [CONTAINS_OP_SET] = { .nuops = 1, .uops = { { _CONTAINS_OP_SET, 0, 0 } } },
1252     [CONVERT_VALUE] = { .nuops = 1, .uops = { { _CONVERT_VALUE, 0, 0 } } },
1253     [COPY] = { .nuops = 1, .uops = { { _COPY, 0, 0 } } },
1254     [COPY_FREE_VARS] = { .nuops = 1, .uops = { { _COPY_FREE_VARS, 0, 0 } } },
1255     [DELETE_ATTR] = { .nuops = 1, .uops = { { _DELETE_ATTR, 0, 0 } } },
1256     [DELETE_DEREF] = { .nuops = 1, .uops = { { _DELETE_DEREF, 0, 0 } } },
1257     [DELETE_FAST] = { .nuops = 1, .uops = { { _DELETE_FAST, 0, 0 } } },
1258     [DELETE_GLOBAL] = { .nuops = 1, .uops = { { _DELETE_GLOBAL, 0, 0 } } },
1259     [DELETE_NAME] = { .nuops = 1, .uops = { { _DELETE_NAME, 0, 0 } } },
1260     [DELETE_SUBSCR] = { .nuops = 1, .uops = { { _DELETE_SUBSCR, 0, 0 } } },
1261     [DICT_MERGE] = { .nuops = 1, .uops = { { _DICT_MERGE, 0, 0 } } },
1262     [DICT_UPDATE] = { .nuops = 1, .uops = { { _DICT_UPDATE, 0, 0 } } },
1263     [END_FOR] = { .nuops = 1, .uops = { { _POP_TOP, 0, 0 } } },
1264     [END_SEND] = { .nuops = 1, .uops = { { _END_SEND, 0, 0 } } },
1265     [EXIT_INIT_CHECK] = { .nuops = 1, .uops = { { _EXIT_INIT_CHECK, 0, 0 } } },
1266     [FORMAT_SIMPLE] = { .nuops = 1, .uops = { { _FORMAT_SIMPLE, 0, 0 } } },
1267     [FORMAT_WITH_SPEC] = { .nuops = 1, .uops = { { _FORMAT_WITH_SPEC, 0, 0 } } },
1268     [FOR_ITER] = { .nuops = 1, .uops = { { _FOR_ITER, 9, 0 } } },
1269     [FOR_ITER_GEN] = { .nuops = 3, .uops = { { _CHECK_PEP_523, 0, 0 }, { _FOR_ITER_GEN_FRAME, 0, 0 }, { _PUSH_FRAME, 0, 0 } } },
1270     [FOR_ITER_LIST] = { .nuops = 3, .uops = { { _ITER_CHECK_LIST, 0, 0 }, { _ITER_JUMP_LIST, 9, 1 }, { _ITER_NEXT_LIST, 0, 0 } } },
1271     [FOR_ITER_RANGE] = { .nuops = 3, .uops = { { _ITER_CHECK_RANGE, 0, 0 }, { _ITER_JUMP_RANGE, 9, 1 }, { _ITER_NEXT_RANGE, 0, 0 } } },
1272     [FOR_ITER_TUPLE] = { .nuops = 3, .uops = { { _ITER_CHECK_TUPLE, 0, 0 }, { _ITER_JUMP_TUPLE, 9, 1 }, { _ITER_NEXT_TUPLE, 0, 0 } } },
1273     [GET_AITER] = { .nuops = 1, .uops = { { _GET_AITER, 0, 0 } } },
1274     [GET_ANEXT] = { .nuops = 1, .uops = { { _GET_ANEXT, 0, 0 } } },
1275     [GET_AWAITABLE] = { .nuops = 1, .uops = { { _GET_AWAITABLE, 0, 0 } } },
1276     [GET_ITER] = { .nuops = 1, .uops = { { _GET_ITER, 0, 0 } } },
1277     [GET_LEN] = { .nuops = 1, .uops = { { _GET_LEN, 0, 0 } } },
1278     [GET_YIELD_FROM_ITER] = { .nuops = 1, .uops = { { _GET_YIELD_FROM_ITER, 0, 0 } } },
1279     [IS_OP] = { .nuops = 1, .uops = { { _IS_OP, 0, 0 } } },
1280     [LIST_APPEND] = { .nuops = 1, .uops = { { _LIST_APPEND, 0, 0 } } },
1281     [LIST_EXTEND] = { .nuops = 1, .uops = { { _LIST_EXTEND, 0, 0 } } },
1282     [LOAD_ASSERTION_ERROR] = { .nuops = 1, .uops = { { _LOAD_ASSERTION_ERROR, 0, 0 } } },
1283     [LOAD_ATTR] = { .nuops = 1, .uops = { { _LOAD_ATTR, 0, 0 } } },
1284     [LOAD_ATTR_CLASS] = { .nuops = 2, .uops = { { _CHECK_ATTR_CLASS, 2, 1 }, { _LOAD_ATTR_CLASS, 4, 5 } } },
1285     [LOAD_ATTR_INSTANCE_VALUE] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_MANAGED_OBJECT_HAS_VALUES, 0, 0 }, { _LOAD_ATTR_INSTANCE_VALUE, 1, 3 } } },
1286     [LOAD_ATTR_METHOD_LAZY_DICT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_METHOD_LAZY_DICT, 1, 3 }, { _LOAD_ATTR_METHOD_LAZY_DICT, 4, 5 } } },
1287     [LOAD_ATTR_METHOD_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_METHOD_NO_DICT, 4, 5 } } },
1288     [LOAD_ATTR_METHOD_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_METHOD_WITH_VALUES, 4, 5 } } },
1289     [LOAD_ATTR_MODULE] = { .nuops = 2, .uops = { { _CHECK_ATTR_MODULE, 2, 1 }, { _LOAD_ATTR_MODULE, 1, 3 } } },
1290     [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_NONDESCRIPTOR_NO_DICT, 4, 5 } } },
1291     [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES, 4, 5 } } },
1292     [LOAD_ATTR_SLOT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_SLOT, 1, 3 } } },
1293     [LOAD_ATTR_WITH_HINT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_WITH_HINT, 0, 0 }, { _LOAD_ATTR_WITH_HINT, 1, 3 } } },
1294     [LOAD_BUILD_CLASS] = { .nuops = 1, .uops = { { _LOAD_BUILD_CLASS, 0, 0 } } },
1295     [LOAD_CONST] = { .nuops = 1, .uops = { { _LOAD_CONST, 0, 0 } } },
1296     [LOAD_DEREF] = { .nuops = 1, .uops = { { _LOAD_DEREF, 0, 0 } } },
1297     [LOAD_FAST] = { .nuops = 1, .uops = { { _LOAD_FAST, 0, 0 } } },
1298     [LOAD_FAST_AND_CLEAR] = { .nuops = 1, .uops = { { _LOAD_FAST_AND_CLEAR, 0, 0 } } },
1299     [LOAD_FAST_CHECK] = { .nuops = 1, .uops = { { _LOAD_FAST_CHECK, 0, 0 } } },
1300     [LOAD_FAST_LOAD_FAST] = { .nuops = 2, .uops = { { _LOAD_FAST, 5, 0 }, { _LOAD_FAST, 6, 0 } } },
1301     [LOAD_FROM_DICT_OR_DEREF] = { .nuops = 1, .uops = { { _LOAD_FROM_DICT_OR_DEREF, 0, 0 } } },
1302     [LOAD_GLOBAL] = { .nuops = 1, .uops = { { _LOAD_GLOBAL, 0, 0 } } },
1303     [LOAD_GLOBAL_BUILTIN] = { .nuops = 3, .uops = { { _GUARD_GLOBALS_VERSION, 1, 1 }, { _GUARD_BUILTINS_VERSION, 1, 2 }, { _LOAD_GLOBAL_BUILTINS, 1, 3 } } },
1304     [LOAD_GLOBAL_MODULE] = { .nuops = 2, .uops = { { _GUARD_GLOBALS_VERSION, 1, 1 }, { _LOAD_GLOBAL_MODULE, 1, 3 } } },
1305     [LOAD_LOCALS] = { .nuops = 1, .uops = { { _LOAD_LOCALS, 0, 0 } } },
1306     [LOAD_SUPER_ATTR_ATTR] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_ATTR, 0, 0 } } },
1307     [LOAD_SUPER_ATTR_METHOD] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_METHOD, 0, 0 } } },
1308     [MAKE_CELL] = { .nuops = 1, .uops = { { _MAKE_CELL, 0, 0 } } },
1309     [MAKE_FUNCTION] = { .nuops = 1, .uops = { { _MAKE_FUNCTION, 0, 0 } } },
1310     [MAP_ADD] = { .nuops = 1, .uops = { { _MAP_ADD, 0, 0 } } },
1311     [MATCH_CLASS] = { .nuops = 1, .uops = { { _MATCH_CLASS, 0, 0 } } },
1312     [MATCH_KEYS] = { .nuops = 1, .uops = { { _MATCH_KEYS, 0, 0 } } },
1313     [MATCH_MAPPING] = { .nuops = 1, .uops = { { _MATCH_MAPPING, 0, 0 } } },
1314     [MATCH_SEQUENCE] = { .nuops = 1, .uops = { { _MATCH_SEQUENCE, 0, 0 } } },
1315     [NOP] = { .nuops = 1, .uops = { { _NOP, 0, 0 } } },
1316     [POP_EXCEPT] = { .nuops = 1, .uops = { { _POP_EXCEPT, 0, 0 } } },
1317     [POP_JUMP_IF_FALSE] = { .nuops = 1, .uops = { { _POP_JUMP_IF_FALSE, 9, 1 } } },
1318     [POP_JUMP_IF_NONE] = { .nuops = 2, .uops = { { _IS_NONE, 0, 0 }, { _POP_JUMP_IF_TRUE, 9, 1 } } },
1319     [POP_JUMP_IF_NOT_NONE] = { .nuops = 2, .uops = { { _IS_NONE, 0, 0 }, { _POP_JUMP_IF_FALSE, 9, 1 } } },
1320     [POP_JUMP_IF_TRUE] = { .nuops = 1, .uops = { { _POP_JUMP_IF_TRUE, 9, 1 } } },
1321     [POP_TOP] = { .nuops = 1, .uops = { { _POP_TOP, 0, 0 } } },
1322     [PUSH_EXC_INFO] = { .nuops = 1, .uops = { { _PUSH_EXC_INFO, 0, 0 } } },
1323     [PUSH_NULL] = { .nuops = 1, .uops = { { _PUSH_NULL, 0, 0 } } },
1324     [RESUME_CHECK] = { .nuops = 1, .uops = { { _RESUME_CHECK, 0, 0 } } },
1325     [RETURN_CONST] = { .nuops = 2, .uops = { { _LOAD_CONST, 0, 0 }, { _POP_FRAME, 0, 0 } } },
1326     [RETURN_GENERATOR] = { .nuops = 1, .uops = { { _RETURN_GENERATOR, 0, 0 } } },
1327     [RETURN_VALUE] = { .nuops = 1, .uops = { { _POP_FRAME, 0, 0 } } },
1328     [SETUP_ANNOTATIONS] = { .nuops = 1, .uops = { { _SETUP_ANNOTATIONS, 0, 0 } } },
1329     [SET_ADD] = { .nuops = 1, .uops = { { _SET_ADD, 0, 0 } } },
1330     [SET_FUNCTION_ATTRIBUTE] = { .nuops = 1, .uops = { { _SET_FUNCTION_ATTRIBUTE, 0, 0 } } },
1331     [SET_UPDATE] = { .nuops = 1, .uops = { { _SET_UPDATE, 0, 0 } } },
1332     [STORE_ATTR] = { .nuops = 1, .uops = { { _STORE_ATTR, 0, 0 } } },
1333     [STORE_ATTR_INSTANCE_VALUE] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_NO_DICT, 0, 0 }, { _STORE_ATTR_INSTANCE_VALUE, 1, 3 } } },
1334     [STORE_ATTR_SLOT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _STORE_ATTR_SLOT, 1, 3 } } },
1335     [STORE_DEREF] = { .nuops = 1, .uops = { { _STORE_DEREF, 0, 0 } } },
1336     [STORE_FAST] = { .nuops = 1, .uops = { { _STORE_FAST, 0, 0 } } },
1337     [STORE_FAST_LOAD_FAST] = { .nuops = 2, .uops = { { _STORE_FAST, 5, 0 }, { _LOAD_FAST, 6, 0 } } },
1338     [STORE_FAST_STORE_FAST] = { .nuops = 2, .uops = { { _STORE_FAST, 5, 0 }, { _STORE_FAST, 6, 0 } } },
1339     [STORE_GLOBAL] = { .nuops = 1, .uops = { { _STORE_GLOBAL, 0, 0 } } },
1340     [STORE_NAME] = { .nuops = 1, .uops = { { _STORE_NAME, 0, 0 } } },
1341     [STORE_SLICE] = { .nuops = 1, .uops = { { _STORE_SLICE, 0, 0 } } },
1342     [STORE_SUBSCR] = { .nuops = 1, .uops = { { _STORE_SUBSCR, 0, 0 } } },
1343     [STORE_SUBSCR_DICT] = { .nuops = 1, .uops = { { _STORE_SUBSCR_DICT, 0, 0 } } },
1344     [STORE_SUBSCR_LIST_INT] = { .nuops = 1, .uops = { { _STORE_SUBSCR_LIST_INT, 0, 0 } } },
1345     [SWAP] = { .nuops = 1, .uops = { { _SWAP, 0, 0 } } },
1346     [TO_BOOL] = { .nuops = 1, .uops = { { _TO_BOOL, 0, 0 } } },
1347     [TO_BOOL_ALWAYS_TRUE] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _REPLACE_WITH_TRUE, 0, 0 } } },
1348     [TO_BOOL_BOOL] = { .nuops = 1, .uops = { { _TO_BOOL_BOOL, 0, 0 } } },
1349     [TO_BOOL_INT] = { .nuops = 1, .uops = { { _TO_BOOL_INT, 0, 0 } } },
1350     [TO_BOOL_LIST] = { .nuops = 1, .uops = { { _TO_BOOL_LIST, 0, 0 } } },
1351     [TO_BOOL_NONE] = { .nuops = 1, .uops = { { _TO_BOOL_NONE, 0, 0 } } },
1352     [TO_BOOL_STR] = { .nuops = 1, .uops = { { _TO_BOOL_STR, 0, 0 } } },
1353     [UNARY_INVERT] = { .nuops = 1, .uops = { { _UNARY_INVERT, 0, 0 } } },
1354     [UNARY_NEGATIVE] = { .nuops = 1, .uops = { { _UNARY_NEGATIVE, 0, 0 } } },
1355     [UNARY_NOT] = { .nuops = 1, .uops = { { _UNARY_NOT, 0, 0 } } },
1356     [UNPACK_EX] = { .nuops = 1, .uops = { { _UNPACK_EX, 0, 0 } } },
1357     [UNPACK_SEQUENCE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE, 0, 0 } } },
1358     [UNPACK_SEQUENCE_LIST] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_LIST, 0, 0 } } },
1359     [UNPACK_SEQUENCE_TUPLE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_TUPLE, 0, 0 } } },
1360     [UNPACK_SEQUENCE_TWO_TUPLE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_TWO_TUPLE, 0, 0 } } },
1361     [WITH_EXCEPT_START] = { .nuops = 1, .uops = { { _WITH_EXCEPT_START, 0, 0 } } },
1362     [YIELD_VALUE] = { .nuops = 1, .uops = { { _YIELD_VALUE, 0, 0 } } },
1363 };
1364 #endif // NEED_OPCODE_METADATA
1365 
1366 extern const char *_PyOpcode_OpName[268];
1367 #ifdef NEED_OPCODE_METADATA
1368 const char *_PyOpcode_OpName[268] = {
1369     [BEFORE_ASYNC_WITH] = "BEFORE_ASYNC_WITH",
1370     [BEFORE_WITH] = "BEFORE_WITH",
1371     [BINARY_OP] = "BINARY_OP",
1372     [BINARY_OP_ADD_FLOAT] = "BINARY_OP_ADD_FLOAT",
1373     [BINARY_OP_ADD_INT] = "BINARY_OP_ADD_INT",
1374     [BINARY_OP_ADD_UNICODE] = "BINARY_OP_ADD_UNICODE",
1375     [BINARY_OP_INPLACE_ADD_UNICODE] = "BINARY_OP_INPLACE_ADD_UNICODE",
1376     [BINARY_OP_MULTIPLY_FLOAT] = "BINARY_OP_MULTIPLY_FLOAT",
1377     [BINARY_OP_MULTIPLY_INT] = "BINARY_OP_MULTIPLY_INT",
1378     [BINARY_OP_SUBTRACT_FLOAT] = "BINARY_OP_SUBTRACT_FLOAT",
1379     [BINARY_OP_SUBTRACT_INT] = "BINARY_OP_SUBTRACT_INT",
1380     [BINARY_SLICE] = "BINARY_SLICE",
1381     [BINARY_SUBSCR] = "BINARY_SUBSCR",
1382     [BINARY_SUBSCR_DICT] = "BINARY_SUBSCR_DICT",
1383     [BINARY_SUBSCR_GETITEM] = "BINARY_SUBSCR_GETITEM",
1384     [BINARY_SUBSCR_LIST_INT] = "BINARY_SUBSCR_LIST_INT",
1385     [BINARY_SUBSCR_STR_INT] = "BINARY_SUBSCR_STR_INT",
1386     [BINARY_SUBSCR_TUPLE_INT] = "BINARY_SUBSCR_TUPLE_INT",
1387     [BUILD_CONST_KEY_MAP] = "BUILD_CONST_KEY_MAP",
1388     [BUILD_LIST] = "BUILD_LIST",
1389     [BUILD_MAP] = "BUILD_MAP",
1390     [BUILD_SET] = "BUILD_SET",
1391     [BUILD_SLICE] = "BUILD_SLICE",
1392     [BUILD_STRING] = "BUILD_STRING",
1393     [BUILD_TUPLE] = "BUILD_TUPLE",
1394     [CACHE] = "CACHE",
1395     [CALL] = "CALL",
1396     [CALL_ALLOC_AND_ENTER_INIT] = "CALL_ALLOC_AND_ENTER_INIT",
1397     [CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS",
1398     [CALL_BOUND_METHOD_GENERAL] = "CALL_BOUND_METHOD_GENERAL",
1399     [CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS",
1400     [CALL_BUILTIN_FAST] = "CALL_BUILTIN_FAST",
1401     [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS",
1402     [CALL_BUILTIN_O] = "CALL_BUILTIN_O",
1403     [CALL_FUNCTION_EX] = "CALL_FUNCTION_EX",
1404     [CALL_INTRINSIC_1] = "CALL_INTRINSIC_1",
1405     [CALL_INTRINSIC_2] = "CALL_INTRINSIC_2",
1406     [CALL_ISINSTANCE] = "CALL_ISINSTANCE",
1407     [CALL_KW] = "CALL_KW",
1408     [CALL_LEN] = "CALL_LEN",
1409     [CALL_LIST_APPEND] = "CALL_LIST_APPEND",
1410     [CALL_METHOD_DESCRIPTOR_FAST] = "CALL_METHOD_DESCRIPTOR_FAST",
1411     [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS",
1412     [CALL_METHOD_DESCRIPTOR_NOARGS] = "CALL_METHOD_DESCRIPTOR_NOARGS",
1413     [CALL_METHOD_DESCRIPTOR_O] = "CALL_METHOD_DESCRIPTOR_O",
1414     [CALL_NON_PY_GENERAL] = "CALL_NON_PY_GENERAL",
1415     [CALL_PY_EXACT_ARGS] = "CALL_PY_EXACT_ARGS",
1416     [CALL_PY_GENERAL] = "CALL_PY_GENERAL",
1417     [CALL_STR_1] = "CALL_STR_1",
1418     [CALL_TUPLE_1] = "CALL_TUPLE_1",
1419     [CALL_TYPE_1] = "CALL_TYPE_1",
1420     [CHECK_EG_MATCH] = "CHECK_EG_MATCH",
1421     [CHECK_EXC_MATCH] = "CHECK_EXC_MATCH",
1422     [CLEANUP_THROW] = "CLEANUP_THROW",
1423     [COMPARE_OP] = "COMPARE_OP",
1424     [COMPARE_OP_FLOAT] = "COMPARE_OP_FLOAT",
1425     [COMPARE_OP_INT] = "COMPARE_OP_INT",
1426     [COMPARE_OP_STR] = "COMPARE_OP_STR",
1427     [CONTAINS_OP] = "CONTAINS_OP",
1428     [CONTAINS_OP_DICT] = "CONTAINS_OP_DICT",
1429     [CONTAINS_OP_SET] = "CONTAINS_OP_SET",
1430     [CONVERT_VALUE] = "CONVERT_VALUE",
1431     [COPY] = "COPY",
1432     [COPY_FREE_VARS] = "COPY_FREE_VARS",
1433     [DELETE_ATTR] = "DELETE_ATTR",
1434     [DELETE_DEREF] = "DELETE_DEREF",
1435     [DELETE_FAST] = "DELETE_FAST",
1436     [DELETE_GLOBAL] = "DELETE_GLOBAL",
1437     [DELETE_NAME] = "DELETE_NAME",
1438     [DELETE_SUBSCR] = "DELETE_SUBSCR",
1439     [DICT_MERGE] = "DICT_MERGE",
1440     [DICT_UPDATE] = "DICT_UPDATE",
1441     [END_ASYNC_FOR] = "END_ASYNC_FOR",
1442     [END_FOR] = "END_FOR",
1443     [END_SEND] = "END_SEND",
1444     [ENTER_EXECUTOR] = "ENTER_EXECUTOR",
1445     [EXIT_INIT_CHECK] = "EXIT_INIT_CHECK",
1446     [EXTENDED_ARG] = "EXTENDED_ARG",
1447     [FORMAT_SIMPLE] = "FORMAT_SIMPLE",
1448     [FORMAT_WITH_SPEC] = "FORMAT_WITH_SPEC",
1449     [FOR_ITER] = "FOR_ITER",
1450     [FOR_ITER_GEN] = "FOR_ITER_GEN",
1451     [FOR_ITER_LIST] = "FOR_ITER_LIST",
1452     [FOR_ITER_RANGE] = "FOR_ITER_RANGE",
1453     [FOR_ITER_TUPLE] = "FOR_ITER_TUPLE",
1454     [GET_AITER] = "GET_AITER",
1455     [GET_ANEXT] = "GET_ANEXT",
1456     [GET_AWAITABLE] = "GET_AWAITABLE",
1457     [GET_ITER] = "GET_ITER",
1458     [GET_LEN] = "GET_LEN",
1459     [GET_YIELD_FROM_ITER] = "GET_YIELD_FROM_ITER",
1460     [IMPORT_FROM] = "IMPORT_FROM",
1461     [IMPORT_NAME] = "IMPORT_NAME",
1462     [INSTRUMENTED_CALL] = "INSTRUMENTED_CALL",
1463     [INSTRUMENTED_CALL_FUNCTION_EX] = "INSTRUMENTED_CALL_FUNCTION_EX",
1464     [INSTRUMENTED_CALL_KW] = "INSTRUMENTED_CALL_KW",
1465     [INSTRUMENTED_END_FOR] = "INSTRUMENTED_END_FOR",
1466     [INSTRUMENTED_END_SEND] = "INSTRUMENTED_END_SEND",
1467     [INSTRUMENTED_FOR_ITER] = "INSTRUMENTED_FOR_ITER",
1468     [INSTRUMENTED_INSTRUCTION] = "INSTRUMENTED_INSTRUCTION",
1469     [INSTRUMENTED_JUMP_BACKWARD] = "INSTRUMENTED_JUMP_BACKWARD",
1470     [INSTRUMENTED_JUMP_FORWARD] = "INSTRUMENTED_JUMP_FORWARD",
1471     [INSTRUMENTED_LINE] = "INSTRUMENTED_LINE",
1472     [INSTRUMENTED_LOAD_SUPER_ATTR] = "INSTRUMENTED_LOAD_SUPER_ATTR",
1473     [INSTRUMENTED_POP_JUMP_IF_FALSE] = "INSTRUMENTED_POP_JUMP_IF_FALSE",
1474     [INSTRUMENTED_POP_JUMP_IF_NONE] = "INSTRUMENTED_POP_JUMP_IF_NONE",
1475     [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = "INSTRUMENTED_POP_JUMP_IF_NOT_NONE",
1476     [INSTRUMENTED_POP_JUMP_IF_TRUE] = "INSTRUMENTED_POP_JUMP_IF_TRUE",
1477     [INSTRUMENTED_RESUME] = "INSTRUMENTED_RESUME",
1478     [INSTRUMENTED_RETURN_CONST] = "INSTRUMENTED_RETURN_CONST",
1479     [INSTRUMENTED_RETURN_VALUE] = "INSTRUMENTED_RETURN_VALUE",
1480     [INSTRUMENTED_YIELD_VALUE] = "INSTRUMENTED_YIELD_VALUE",
1481     [INTERPRETER_EXIT] = "INTERPRETER_EXIT",
1482     [IS_OP] = "IS_OP",
1483     [JUMP] = "JUMP",
1484     [JUMP_BACKWARD] = "JUMP_BACKWARD",
1485     [JUMP_BACKWARD_NO_INTERRUPT] = "JUMP_BACKWARD_NO_INTERRUPT",
1486     [JUMP_FORWARD] = "JUMP_FORWARD",
1487     [JUMP_NO_INTERRUPT] = "JUMP_NO_INTERRUPT",
1488     [LIST_APPEND] = "LIST_APPEND",
1489     [LIST_EXTEND] = "LIST_EXTEND",
1490     [LOAD_ASSERTION_ERROR] = "LOAD_ASSERTION_ERROR",
1491     [LOAD_ATTR] = "LOAD_ATTR",
1492     [LOAD_ATTR_CLASS] = "LOAD_ATTR_CLASS",
1493     [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN",
1494     [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE",
1495     [LOAD_ATTR_METHOD_LAZY_DICT] = "LOAD_ATTR_METHOD_LAZY_DICT",
1496     [LOAD_ATTR_METHOD_NO_DICT] = "LOAD_ATTR_METHOD_NO_DICT",
1497     [LOAD_ATTR_METHOD_WITH_VALUES] = "LOAD_ATTR_METHOD_WITH_VALUES",
1498     [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE",
1499     [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "LOAD_ATTR_NONDESCRIPTOR_NO_DICT",
1500     [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES",
1501     [LOAD_ATTR_PROPERTY] = "LOAD_ATTR_PROPERTY",
1502     [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT",
1503     [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT",
1504     [LOAD_BUILD_CLASS] = "LOAD_BUILD_CLASS",
1505     [LOAD_CLOSURE] = "LOAD_CLOSURE",
1506     [LOAD_CONST] = "LOAD_CONST",
1507     [LOAD_DEREF] = "LOAD_DEREF",
1508     [LOAD_FAST] = "LOAD_FAST",
1509     [LOAD_FAST_AND_CLEAR] = "LOAD_FAST_AND_CLEAR",
1510     [LOAD_FAST_CHECK] = "LOAD_FAST_CHECK",
1511     [LOAD_FAST_LOAD_FAST] = "LOAD_FAST_LOAD_FAST",
1512     [LOAD_FROM_DICT_OR_DEREF] = "LOAD_FROM_DICT_OR_DEREF",
1513     [LOAD_FROM_DICT_OR_GLOBALS] = "LOAD_FROM_DICT_OR_GLOBALS",
1514     [LOAD_GLOBAL] = "LOAD_GLOBAL",
1515     [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN",
1516     [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE",
1517     [LOAD_LOCALS] = "LOAD_LOCALS",
1518     [LOAD_METHOD] = "LOAD_METHOD",
1519     [LOAD_NAME] = "LOAD_NAME",
1520     [LOAD_SUPER_ATTR] = "LOAD_SUPER_ATTR",
1521     [LOAD_SUPER_ATTR_ATTR] = "LOAD_SUPER_ATTR_ATTR",
1522     [LOAD_SUPER_ATTR_METHOD] = "LOAD_SUPER_ATTR_METHOD",
1523     [LOAD_SUPER_METHOD] = "LOAD_SUPER_METHOD",
1524     [LOAD_ZERO_SUPER_ATTR] = "LOAD_ZERO_SUPER_ATTR",
1525     [LOAD_ZERO_SUPER_METHOD] = "LOAD_ZERO_SUPER_METHOD",
1526     [MAKE_CELL] = "MAKE_CELL",
1527     [MAKE_FUNCTION] = "MAKE_FUNCTION",
1528     [MAP_ADD] = "MAP_ADD",
1529     [MATCH_CLASS] = "MATCH_CLASS",
1530     [MATCH_KEYS] = "MATCH_KEYS",
1531     [MATCH_MAPPING] = "MATCH_MAPPING",
1532     [MATCH_SEQUENCE] = "MATCH_SEQUENCE",
1533     [NOP] = "NOP",
1534     [POP_BLOCK] = "POP_BLOCK",
1535     [POP_EXCEPT] = "POP_EXCEPT",
1536     [POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE",
1537     [POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE",
1538     [POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE",
1539     [POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE",
1540     [POP_TOP] = "POP_TOP",
1541     [PUSH_EXC_INFO] = "PUSH_EXC_INFO",
1542     [PUSH_NULL] = "PUSH_NULL",
1543     [RAISE_VARARGS] = "RAISE_VARARGS",
1544     [RERAISE] = "RERAISE",
1545     [RESERVED] = "RESERVED",
1546     [RESUME] = "RESUME",
1547     [RESUME_CHECK] = "RESUME_CHECK",
1548     [RETURN_CONST] = "RETURN_CONST",
1549     [RETURN_GENERATOR] = "RETURN_GENERATOR",
1550     [RETURN_VALUE] = "RETURN_VALUE",
1551     [SEND] = "SEND",
1552     [SEND_GEN] = "SEND_GEN",
1553     [SETUP_ANNOTATIONS] = "SETUP_ANNOTATIONS",
1554     [SETUP_CLEANUP] = "SETUP_CLEANUP",
1555     [SETUP_FINALLY] = "SETUP_FINALLY",
1556     [SETUP_WITH] = "SETUP_WITH",
1557     [SET_ADD] = "SET_ADD",
1558     [SET_FUNCTION_ATTRIBUTE] = "SET_FUNCTION_ATTRIBUTE",
1559     [SET_UPDATE] = "SET_UPDATE",
1560     [STORE_ATTR] = "STORE_ATTR",
1561     [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE",
1562     [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT",
1563     [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT",
1564     [STORE_DEREF] = "STORE_DEREF",
1565     [STORE_FAST] = "STORE_FAST",
1566     [STORE_FAST_LOAD_FAST] = "STORE_FAST_LOAD_FAST",
1567     [STORE_FAST_MAYBE_NULL] = "STORE_FAST_MAYBE_NULL",
1568     [STORE_FAST_STORE_FAST] = "STORE_FAST_STORE_FAST",
1569     [STORE_GLOBAL] = "STORE_GLOBAL",
1570     [STORE_NAME] = "STORE_NAME",
1571     [STORE_SLICE] = "STORE_SLICE",
1572     [STORE_SUBSCR] = "STORE_SUBSCR",
1573     [STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT",
1574     [STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT",
1575     [SWAP] = "SWAP",
1576     [TO_BOOL] = "TO_BOOL",
1577     [TO_BOOL_ALWAYS_TRUE] = "TO_BOOL_ALWAYS_TRUE",
1578     [TO_BOOL_BOOL] = "TO_BOOL_BOOL",
1579     [TO_BOOL_INT] = "TO_BOOL_INT",
1580     [TO_BOOL_LIST] = "TO_BOOL_LIST",
1581     [TO_BOOL_NONE] = "TO_BOOL_NONE",
1582     [TO_BOOL_STR] = "TO_BOOL_STR",
1583     [UNARY_INVERT] = "UNARY_INVERT",
1584     [UNARY_NEGATIVE] = "UNARY_NEGATIVE",
1585     [UNARY_NOT] = "UNARY_NOT",
1586     [UNPACK_EX] = "UNPACK_EX",
1587     [UNPACK_SEQUENCE] = "UNPACK_SEQUENCE",
1588     [UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST",
1589     [UNPACK_SEQUENCE_TUPLE] = "UNPACK_SEQUENCE_TUPLE",
1590     [UNPACK_SEQUENCE_TWO_TUPLE] = "UNPACK_SEQUENCE_TWO_TUPLE",
1591     [WITH_EXCEPT_START] = "WITH_EXCEPT_START",
1592     [YIELD_VALUE] = "YIELD_VALUE",
1593 };
1594 #endif
1595 
1596 extern const uint8_t _PyOpcode_Caches[256];
1597 #ifdef NEED_OPCODE_METADATA
1598 const uint8_t _PyOpcode_Caches[256] = {
1599     [JUMP_BACKWARD] = 1,
1600     [TO_BOOL] = 3,
1601     [BINARY_SUBSCR] = 1,
1602     [STORE_SUBSCR] = 1,
1603     [SEND] = 1,
1604     [UNPACK_SEQUENCE] = 1,
1605     [STORE_ATTR] = 4,
1606     [LOAD_GLOBAL] = 4,
1607     [LOAD_SUPER_ATTR] = 1,
1608     [LOAD_ATTR] = 9,
1609     [COMPARE_OP] = 1,
1610     [CONTAINS_OP] = 1,
1611     [POP_JUMP_IF_TRUE] = 1,
1612     [POP_JUMP_IF_FALSE] = 1,
1613     [POP_JUMP_IF_NONE] = 1,
1614     [POP_JUMP_IF_NOT_NONE] = 1,
1615     [FOR_ITER] = 1,
1616     [CALL] = 3,
1617     [BINARY_OP] = 1,
1618 };
1619 #endif
1620 
1621 extern const uint8_t _PyOpcode_Deopt[256];
1622 #ifdef NEED_OPCODE_METADATA
1623 const uint8_t _PyOpcode_Deopt[256] = {
1624     [BEFORE_ASYNC_WITH] = BEFORE_ASYNC_WITH,
1625     [BEFORE_WITH] = BEFORE_WITH,
1626     [BINARY_OP] = BINARY_OP,
1627     [BINARY_OP_ADD_FLOAT] = BINARY_OP,
1628     [BINARY_OP_ADD_INT] = BINARY_OP,
1629     [BINARY_OP_ADD_UNICODE] = BINARY_OP,
1630     [BINARY_OP_INPLACE_ADD_UNICODE] = BINARY_OP,
1631     [BINARY_OP_MULTIPLY_FLOAT] = BINARY_OP,
1632     [BINARY_OP_MULTIPLY_INT] = BINARY_OP,
1633     [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP,
1634     [BINARY_OP_SUBTRACT_INT] = BINARY_OP,
1635     [BINARY_SLICE] = BINARY_SLICE,
1636     [BINARY_SUBSCR] = BINARY_SUBSCR,
1637     [BINARY_SUBSCR_DICT] = BINARY_SUBSCR,
1638     [BINARY_SUBSCR_GETITEM] = BINARY_SUBSCR,
1639     [BINARY_SUBSCR_LIST_INT] = BINARY_SUBSCR,
1640     [BINARY_SUBSCR_STR_INT] = BINARY_SUBSCR,
1641     [BINARY_SUBSCR_TUPLE_INT] = BINARY_SUBSCR,
1642     [BUILD_CONST_KEY_MAP] = BUILD_CONST_KEY_MAP,
1643     [BUILD_LIST] = BUILD_LIST,
1644     [BUILD_MAP] = BUILD_MAP,
1645     [BUILD_SET] = BUILD_SET,
1646     [BUILD_SLICE] = BUILD_SLICE,
1647     [BUILD_STRING] = BUILD_STRING,
1648     [BUILD_TUPLE] = BUILD_TUPLE,
1649     [CACHE] = CACHE,
1650     [CALL] = CALL,
1651     [CALL_ALLOC_AND_ENTER_INIT] = CALL,
1652     [CALL_BOUND_METHOD_EXACT_ARGS] = CALL,
1653     [CALL_BOUND_METHOD_GENERAL] = CALL,
1654     [CALL_BUILTIN_CLASS] = CALL,
1655     [CALL_BUILTIN_FAST] = CALL,
1656     [CALL_BUILTIN_FAST_WITH_KEYWORDS] = CALL,
1657     [CALL_BUILTIN_O] = CALL,
1658     [CALL_FUNCTION_EX] = CALL_FUNCTION_EX,
1659     [CALL_INTRINSIC_1] = CALL_INTRINSIC_1,
1660     [CALL_INTRINSIC_2] = CALL_INTRINSIC_2,
1661     [CALL_ISINSTANCE] = CALL,
1662     [CALL_KW] = CALL_KW,
1663     [CALL_LEN] = CALL,
1664     [CALL_LIST_APPEND] = CALL,
1665     [CALL_METHOD_DESCRIPTOR_FAST] = CALL,
1666     [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = CALL,
1667     [CALL_METHOD_DESCRIPTOR_NOARGS] = CALL,
1668     [CALL_METHOD_DESCRIPTOR_O] = CALL,
1669     [CALL_NON_PY_GENERAL] = CALL,
1670     [CALL_PY_EXACT_ARGS] = CALL,
1671     [CALL_PY_GENERAL] = CALL,
1672     [CALL_STR_1] = CALL,
1673     [CALL_TUPLE_1] = CALL,
1674     [CALL_TYPE_1] = CALL,
1675     [CHECK_EG_MATCH] = CHECK_EG_MATCH,
1676     [CHECK_EXC_MATCH] = CHECK_EXC_MATCH,
1677     [CLEANUP_THROW] = CLEANUP_THROW,
1678     [COMPARE_OP] = COMPARE_OP,
1679     [COMPARE_OP_FLOAT] = COMPARE_OP,
1680     [COMPARE_OP_INT] = COMPARE_OP,
1681     [COMPARE_OP_STR] = COMPARE_OP,
1682     [CONTAINS_OP] = CONTAINS_OP,
1683     [CONTAINS_OP_DICT] = CONTAINS_OP,
1684     [CONTAINS_OP_SET] = CONTAINS_OP,
1685     [CONVERT_VALUE] = CONVERT_VALUE,
1686     [COPY] = COPY,
1687     [COPY_FREE_VARS] = COPY_FREE_VARS,
1688     [DELETE_ATTR] = DELETE_ATTR,
1689     [DELETE_DEREF] = DELETE_DEREF,
1690     [DELETE_FAST] = DELETE_FAST,
1691     [DELETE_GLOBAL] = DELETE_GLOBAL,
1692     [DELETE_NAME] = DELETE_NAME,
1693     [DELETE_SUBSCR] = DELETE_SUBSCR,
1694     [DICT_MERGE] = DICT_MERGE,
1695     [DICT_UPDATE] = DICT_UPDATE,
1696     [END_ASYNC_FOR] = END_ASYNC_FOR,
1697     [END_FOR] = END_FOR,
1698     [END_SEND] = END_SEND,
1699     [ENTER_EXECUTOR] = ENTER_EXECUTOR,
1700     [EXIT_INIT_CHECK] = EXIT_INIT_CHECK,
1701     [EXTENDED_ARG] = EXTENDED_ARG,
1702     [FORMAT_SIMPLE] = FORMAT_SIMPLE,
1703     [FORMAT_WITH_SPEC] = FORMAT_WITH_SPEC,
1704     [FOR_ITER] = FOR_ITER,
1705     [FOR_ITER_GEN] = FOR_ITER,
1706     [FOR_ITER_LIST] = FOR_ITER,
1707     [FOR_ITER_RANGE] = FOR_ITER,
1708     [FOR_ITER_TUPLE] = FOR_ITER,
1709     [GET_AITER] = GET_AITER,
1710     [GET_ANEXT] = GET_ANEXT,
1711     [GET_AWAITABLE] = GET_AWAITABLE,
1712     [GET_ITER] = GET_ITER,
1713     [GET_LEN] = GET_LEN,
1714     [GET_YIELD_FROM_ITER] = GET_YIELD_FROM_ITER,
1715     [IMPORT_FROM] = IMPORT_FROM,
1716     [IMPORT_NAME] = IMPORT_NAME,
1717     [INSTRUMENTED_CALL] = INSTRUMENTED_CALL,
1718     [INSTRUMENTED_CALL_FUNCTION_EX] = INSTRUMENTED_CALL_FUNCTION_EX,
1719     [INSTRUMENTED_CALL_KW] = INSTRUMENTED_CALL_KW,
1720     [INSTRUMENTED_END_FOR] = INSTRUMENTED_END_FOR,
1721     [INSTRUMENTED_END_SEND] = INSTRUMENTED_END_SEND,
1722     [INSTRUMENTED_FOR_ITER] = INSTRUMENTED_FOR_ITER,
1723     [INSTRUMENTED_INSTRUCTION] = INSTRUMENTED_INSTRUCTION,
1724     [INSTRUMENTED_JUMP_BACKWARD] = INSTRUMENTED_JUMP_BACKWARD,
1725     [INSTRUMENTED_JUMP_FORWARD] = INSTRUMENTED_JUMP_FORWARD,
1726     [INSTRUMENTED_LINE] = INSTRUMENTED_LINE,
1727     [INSTRUMENTED_LOAD_SUPER_ATTR] = INSTRUMENTED_LOAD_SUPER_ATTR,
1728     [INSTRUMENTED_POP_JUMP_IF_FALSE] = INSTRUMENTED_POP_JUMP_IF_FALSE,
1729     [INSTRUMENTED_POP_JUMP_IF_NONE] = INSTRUMENTED_POP_JUMP_IF_NONE,
1730     [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = INSTRUMENTED_POP_JUMP_IF_NOT_NONE,
1731     [INSTRUMENTED_POP_JUMP_IF_TRUE] = INSTRUMENTED_POP_JUMP_IF_TRUE,
1732     [INSTRUMENTED_RESUME] = INSTRUMENTED_RESUME,
1733     [INSTRUMENTED_RETURN_CONST] = INSTRUMENTED_RETURN_CONST,
1734     [INSTRUMENTED_RETURN_VALUE] = INSTRUMENTED_RETURN_VALUE,
1735     [INSTRUMENTED_YIELD_VALUE] = INSTRUMENTED_YIELD_VALUE,
1736     [INTERPRETER_EXIT] = INTERPRETER_EXIT,
1737     [IS_OP] = IS_OP,
1738     [JUMP_BACKWARD] = JUMP_BACKWARD,
1739     [JUMP_BACKWARD_NO_INTERRUPT] = JUMP_BACKWARD_NO_INTERRUPT,
1740     [JUMP_FORWARD] = JUMP_FORWARD,
1741     [LIST_APPEND] = LIST_APPEND,
1742     [LIST_EXTEND] = LIST_EXTEND,
1743     [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR,
1744     [LOAD_ATTR] = LOAD_ATTR,
1745     [LOAD_ATTR_CLASS] = LOAD_ATTR,
1746     [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = LOAD_ATTR,
1747     [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR,
1748     [LOAD_ATTR_METHOD_LAZY_DICT] = LOAD_ATTR,
1749     [LOAD_ATTR_METHOD_NO_DICT] = LOAD_ATTR,
1750     [LOAD_ATTR_METHOD_WITH_VALUES] = LOAD_ATTR,
1751     [LOAD_ATTR_MODULE] = LOAD_ATTR,
1752     [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = LOAD_ATTR,
1753     [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = LOAD_ATTR,
1754     [LOAD_ATTR_PROPERTY] = LOAD_ATTR,
1755     [LOAD_ATTR_SLOT] = LOAD_ATTR,
1756     [LOAD_ATTR_WITH_HINT] = LOAD_ATTR,
1757     [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS,
1758     [LOAD_CONST] = LOAD_CONST,
1759     [LOAD_DEREF] = LOAD_DEREF,
1760     [LOAD_FAST] = LOAD_FAST,
1761     [LOAD_FAST_AND_CLEAR] = LOAD_FAST_AND_CLEAR,
1762     [LOAD_FAST_CHECK] = LOAD_FAST_CHECK,
1763     [LOAD_FAST_LOAD_FAST] = LOAD_FAST_LOAD_FAST,
1764     [LOAD_FROM_DICT_OR_DEREF] = LOAD_FROM_DICT_OR_DEREF,
1765     [LOAD_FROM_DICT_OR_GLOBALS] = LOAD_FROM_DICT_OR_GLOBALS,
1766     [LOAD_GLOBAL] = LOAD_GLOBAL,
1767     [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL,
1768     [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL,
1769     [LOAD_LOCALS] = LOAD_LOCALS,
1770     [LOAD_NAME] = LOAD_NAME,
1771     [LOAD_SUPER_ATTR] = LOAD_SUPER_ATTR,
1772     [LOAD_SUPER_ATTR_ATTR] = LOAD_SUPER_ATTR,
1773     [LOAD_SUPER_ATTR_METHOD] = LOAD_SUPER_ATTR,
1774     [MAKE_CELL] = MAKE_CELL,
1775     [MAKE_FUNCTION] = MAKE_FUNCTION,
1776     [MAP_ADD] = MAP_ADD,
1777     [MATCH_CLASS] = MATCH_CLASS,
1778     [MATCH_KEYS] = MATCH_KEYS,
1779     [MATCH_MAPPING] = MATCH_MAPPING,
1780     [MATCH_SEQUENCE] = MATCH_SEQUENCE,
1781     [NOP] = NOP,
1782     [POP_EXCEPT] = POP_EXCEPT,
1783     [POP_JUMP_IF_FALSE] = POP_JUMP_IF_FALSE,
1784     [POP_JUMP_IF_NONE] = POP_JUMP_IF_NONE,
1785     [POP_JUMP_IF_NOT_NONE] = POP_JUMP_IF_NOT_NONE,
1786     [POP_JUMP_IF_TRUE] = POP_JUMP_IF_TRUE,
1787     [POP_TOP] = POP_TOP,
1788     [PUSH_EXC_INFO] = PUSH_EXC_INFO,
1789     [PUSH_NULL] = PUSH_NULL,
1790     [RAISE_VARARGS] = RAISE_VARARGS,
1791     [RERAISE] = RERAISE,
1792     [RESERVED] = RESERVED,
1793     [RESUME] = RESUME,
1794     [RESUME_CHECK] = RESUME,
1795     [RETURN_CONST] = RETURN_CONST,
1796     [RETURN_GENERATOR] = RETURN_GENERATOR,
1797     [RETURN_VALUE] = RETURN_VALUE,
1798     [SEND] = SEND,
1799     [SEND_GEN] = SEND,
1800     [SETUP_ANNOTATIONS] = SETUP_ANNOTATIONS,
1801     [SET_ADD] = SET_ADD,
1802     [SET_FUNCTION_ATTRIBUTE] = SET_FUNCTION_ATTRIBUTE,
1803     [SET_UPDATE] = SET_UPDATE,
1804     [STORE_ATTR] = STORE_ATTR,
1805     [STORE_ATTR_INSTANCE_VALUE] = STORE_ATTR,
1806     [STORE_ATTR_SLOT] = STORE_ATTR,
1807     [STORE_ATTR_WITH_HINT] = STORE_ATTR,
1808     [STORE_DEREF] = STORE_DEREF,
1809     [STORE_FAST] = STORE_FAST,
1810     [STORE_FAST_LOAD_FAST] = STORE_FAST_LOAD_FAST,
1811     [STORE_FAST_STORE_FAST] = STORE_FAST_STORE_FAST,
1812     [STORE_GLOBAL] = STORE_GLOBAL,
1813     [STORE_NAME] = STORE_NAME,
1814     [STORE_SLICE] = STORE_SLICE,
1815     [STORE_SUBSCR] = STORE_SUBSCR,
1816     [STORE_SUBSCR_DICT] = STORE_SUBSCR,
1817     [STORE_SUBSCR_LIST_INT] = STORE_SUBSCR,
1818     [SWAP] = SWAP,
1819     [TO_BOOL] = TO_BOOL,
1820     [TO_BOOL_ALWAYS_TRUE] = TO_BOOL,
1821     [TO_BOOL_BOOL] = TO_BOOL,
1822     [TO_BOOL_INT] = TO_BOOL,
1823     [TO_BOOL_LIST] = TO_BOOL,
1824     [TO_BOOL_NONE] = TO_BOOL,
1825     [TO_BOOL_STR] = TO_BOOL,
1826     [UNARY_INVERT] = UNARY_INVERT,
1827     [UNARY_NEGATIVE] = UNARY_NEGATIVE,
1828     [UNARY_NOT] = UNARY_NOT,
1829     [UNPACK_EX] = UNPACK_EX,
1830     [UNPACK_SEQUENCE] = UNPACK_SEQUENCE,
1831     [UNPACK_SEQUENCE_LIST] = UNPACK_SEQUENCE,
1832     [UNPACK_SEQUENCE_TUPLE] = UNPACK_SEQUENCE,
1833     [UNPACK_SEQUENCE_TWO_TUPLE] = UNPACK_SEQUENCE,
1834     [WITH_EXCEPT_START] = WITH_EXCEPT_START,
1835     [YIELD_VALUE] = YIELD_VALUE,
1836 };
1837 
1838 #endif // NEED_OPCODE_METADATA
1839 
1840 #define EXTRA_CASES \
1841     case 119: \
1842     case 120: \
1843     case 121: \
1844     case 122: \
1845     case 123: \
1846     case 124: \
1847     case 125: \
1848     case 126: \
1849     case 127: \
1850     case 128: \
1851     case 129: \
1852     case 130: \
1853     case 131: \
1854     case 132: \
1855     case 133: \
1856     case 134: \
1857     case 135: \
1858     case 136: \
1859     case 137: \
1860     case 138: \
1861     case 139: \
1862     case 140: \
1863     case 141: \
1864     case 142: \
1865     case 143: \
1866     case 144: \
1867     case 145: \
1868     case 146: \
1869     case 147: \
1870     case 148: \
1871     case 223: \
1872     case 224: \
1873     case 225: \
1874     case 226: \
1875     case 227: \
1876     case 228: \
1877     case 229: \
1878     case 230: \
1879     case 231: \
1880     case 232: \
1881     case 233: \
1882     case 234: \
1883     case 235: \
1884     case 255: \
1885         ;
1886 struct pseudo_targets {
1887     uint8_t targets[3];
1888 };
1889 extern const struct pseudo_targets _PyOpcode_PseudoTargets[12];
1890 #ifdef NEED_OPCODE_METADATA
1891 const struct pseudo_targets _PyOpcode_PseudoTargets[12] = {
1892     [LOAD_CLOSURE-256] = { { LOAD_FAST, 0, 0 } },
1893     [STORE_FAST_MAYBE_NULL-256] = { { STORE_FAST, 0, 0 } },
1894     [LOAD_SUPER_METHOD-256] = { { LOAD_SUPER_ATTR, 0, 0 } },
1895     [LOAD_ZERO_SUPER_METHOD-256] = { { LOAD_SUPER_ATTR, 0, 0 } },
1896     [LOAD_ZERO_SUPER_ATTR-256] = { { LOAD_SUPER_ATTR, 0, 0 } },
1897     [LOAD_METHOD-256] = { { LOAD_ATTR, 0, 0 } },
1898     [JUMP-256] = { { JUMP_FORWARD, JUMP_BACKWARD, 0 } },
1899     [JUMP_NO_INTERRUPT-256] = { { JUMP_FORWARD, JUMP_BACKWARD_NO_INTERRUPT, 0 } },
1900     [SETUP_FINALLY-256] = { { NOP, 0, 0 } },
1901     [SETUP_CLEANUP-256] = { { NOP, 0, 0 } },
1902     [SETUP_WITH-256] = { { NOP, 0, 0 } },
1903     [POP_BLOCK-256] = { { NOP, 0, 0 } },
1904 };
1905 
1906 #endif // NEED_OPCODE_METADATA
1907 static inline bool
1908 is_pseudo_target(int pseudo, int target) {
1909     if (pseudo < 256 || pseudo >= 268) {
1910         return false;
1911     }
1912     for (int i = 0; _PyOpcode_PseudoTargets[pseudo-256].targets[i]; i++) {
1913         if (_PyOpcode_PseudoTargets[pseudo-256].targets[i] == target) return true;
1914     }
1915     return false;
1916 }
1917 
1918 
1919 #ifdef __cplusplus
1920 }
1921 #endif
1922 #endif /* !Py_CORE_OPCODE_METADATA_H */