Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:06:49

0001 // Auto-generated by Tools/build/generate_opcode_h.py from Lib/opcode.py
0002 
0003 #ifndef Py_OPCODE_H
0004 #define Py_OPCODE_H
0005 #ifdef __cplusplus
0006 extern "C" {
0007 #endif
0008 
0009 
0010 /* Instruction opcodes for compiled code */
0011 #define CACHE                                    0
0012 #define POP_TOP                                  1
0013 #define PUSH_NULL                                2
0014 #define INTERPRETER_EXIT                         3
0015 #define END_FOR                                  4
0016 #define END_SEND                                 5
0017 #define NOP                                      9
0018 #define UNARY_NEGATIVE                          11
0019 #define UNARY_NOT                               12
0020 #define UNARY_INVERT                            15
0021 #define RESERVED                                17
0022 #define BINARY_SUBSCR                           25
0023 #define BINARY_SLICE                            26
0024 #define STORE_SLICE                             27
0025 #define GET_LEN                                 30
0026 #define MATCH_MAPPING                           31
0027 #define MATCH_SEQUENCE                          32
0028 #define MATCH_KEYS                              33
0029 #define PUSH_EXC_INFO                           35
0030 #define CHECK_EXC_MATCH                         36
0031 #define CHECK_EG_MATCH                          37
0032 #define WITH_EXCEPT_START                       49
0033 #define GET_AITER                               50
0034 #define GET_ANEXT                               51
0035 #define BEFORE_ASYNC_WITH                       52
0036 #define BEFORE_WITH                             53
0037 #define END_ASYNC_FOR                           54
0038 #define CLEANUP_THROW                           55
0039 #define STORE_SUBSCR                            60
0040 #define DELETE_SUBSCR                           61
0041 #define GET_ITER                                68
0042 #define GET_YIELD_FROM_ITER                     69
0043 #define LOAD_BUILD_CLASS                        71
0044 #define LOAD_ASSERTION_ERROR                    74
0045 #define RETURN_GENERATOR                        75
0046 #define RETURN_VALUE                            83
0047 #define SETUP_ANNOTATIONS                       85
0048 #define LOAD_LOCALS                             87
0049 #define POP_EXCEPT                              89
0050 #define HAVE_ARGUMENT                           90
0051 #define STORE_NAME                              90
0052 #define DELETE_NAME                             91
0053 #define UNPACK_SEQUENCE                         92
0054 #define FOR_ITER                                93
0055 #define UNPACK_EX                               94
0056 #define STORE_ATTR                              95
0057 #define DELETE_ATTR                             96
0058 #define STORE_GLOBAL                            97
0059 #define DELETE_GLOBAL                           98
0060 #define SWAP                                    99
0061 #define LOAD_CONST                             100
0062 #define LOAD_NAME                              101
0063 #define BUILD_TUPLE                            102
0064 #define BUILD_LIST                             103
0065 #define BUILD_SET                              104
0066 #define BUILD_MAP                              105
0067 #define LOAD_ATTR                              106
0068 #define COMPARE_OP                             107
0069 #define IMPORT_NAME                            108
0070 #define IMPORT_FROM                            109
0071 #define JUMP_FORWARD                           110
0072 #define POP_JUMP_IF_FALSE                      114
0073 #define POP_JUMP_IF_TRUE                       115
0074 #define LOAD_GLOBAL                            116
0075 #define IS_OP                                  117
0076 #define CONTAINS_OP                            118
0077 #define RERAISE                                119
0078 #define COPY                                   120
0079 #define RETURN_CONST                           121
0080 #define BINARY_OP                              122
0081 #define SEND                                   123
0082 #define LOAD_FAST                              124
0083 #define STORE_FAST                             125
0084 #define DELETE_FAST                            126
0085 #define LOAD_FAST_CHECK                        127
0086 #define POP_JUMP_IF_NOT_NONE                   128
0087 #define POP_JUMP_IF_NONE                       129
0088 #define RAISE_VARARGS                          130
0089 #define GET_AWAITABLE                          131
0090 #define MAKE_FUNCTION                          132
0091 #define BUILD_SLICE                            133
0092 #define JUMP_BACKWARD_NO_INTERRUPT             134
0093 #define MAKE_CELL                              135
0094 #define LOAD_CLOSURE                           136
0095 #define LOAD_DEREF                             137
0096 #define STORE_DEREF                            138
0097 #define DELETE_DEREF                           139
0098 #define JUMP_BACKWARD                          140
0099 #define LOAD_SUPER_ATTR                        141
0100 #define CALL_FUNCTION_EX                       142
0101 #define LOAD_FAST_AND_CLEAR                    143
0102 #define EXTENDED_ARG                           144
0103 #define LIST_APPEND                            145
0104 #define SET_ADD                                146
0105 #define MAP_ADD                                147
0106 #define COPY_FREE_VARS                         149
0107 #define YIELD_VALUE                            150
0108 #define RESUME                                 151
0109 #define MATCH_CLASS                            152
0110 #define FORMAT_VALUE                           155
0111 #define BUILD_CONST_KEY_MAP                    156
0112 #define BUILD_STRING                           157
0113 #define LIST_EXTEND                            162
0114 #define SET_UPDATE                             163
0115 #define DICT_MERGE                             164
0116 #define DICT_UPDATE                            165
0117 #define CALL                                   171
0118 #define KW_NAMES                               172
0119 #define CALL_INTRINSIC_1                       173
0120 #define CALL_INTRINSIC_2                       174
0121 #define LOAD_FROM_DICT_OR_GLOBALS              175
0122 #define LOAD_FROM_DICT_OR_DEREF                176
0123 #define MIN_INSTRUMENTED_OPCODE                237
0124 #define INSTRUMENTED_LOAD_SUPER_ATTR           237
0125 #define INSTRUMENTED_POP_JUMP_IF_NONE          238
0126 #define INSTRUMENTED_POP_JUMP_IF_NOT_NONE      239
0127 #define INSTRUMENTED_RESUME                    240
0128 #define INSTRUMENTED_CALL                      241
0129 #define INSTRUMENTED_RETURN_VALUE              242
0130 #define INSTRUMENTED_YIELD_VALUE               243
0131 #define INSTRUMENTED_CALL_FUNCTION_EX          244
0132 #define INSTRUMENTED_JUMP_FORWARD              245
0133 #define INSTRUMENTED_JUMP_BACKWARD             246
0134 #define INSTRUMENTED_RETURN_CONST              247
0135 #define INSTRUMENTED_FOR_ITER                  248
0136 #define INSTRUMENTED_POP_JUMP_IF_FALSE         249
0137 #define INSTRUMENTED_POP_JUMP_IF_TRUE          250
0138 #define INSTRUMENTED_END_FOR                   251
0139 #define INSTRUMENTED_END_SEND                  252
0140 #define INSTRUMENTED_INSTRUCTION               253
0141 #define INSTRUMENTED_LINE                      254
0142 #define MIN_PSEUDO_OPCODE                      256
0143 #define SETUP_FINALLY                          256
0144 #define SETUP_CLEANUP                          257
0145 #define SETUP_WITH                             258
0146 #define POP_BLOCK                              259
0147 #define JUMP                                   260
0148 #define JUMP_NO_INTERRUPT                      261
0149 #define LOAD_METHOD                            262
0150 #define LOAD_SUPER_METHOD                      263
0151 #define LOAD_ZERO_SUPER_METHOD                 264
0152 #define LOAD_ZERO_SUPER_ATTR                   265
0153 #define STORE_FAST_MAYBE_NULL                  266
0154 #define MAX_PSEUDO_OPCODE                      266
0155 #define BINARY_OP_ADD_FLOAT                      6
0156 #define BINARY_OP_ADD_INT                        7
0157 #define BINARY_OP_ADD_UNICODE                    8
0158 #define BINARY_OP_INPLACE_ADD_UNICODE           10
0159 #define BINARY_OP_MULTIPLY_FLOAT                13
0160 #define BINARY_OP_MULTIPLY_INT                  14
0161 #define BINARY_OP_SUBTRACT_FLOAT                16
0162 #define BINARY_OP_SUBTRACT_INT                  18
0163 #define BINARY_SUBSCR_DICT                      19
0164 #define BINARY_SUBSCR_GETITEM                   20
0165 #define BINARY_SUBSCR_LIST_INT                  21
0166 #define BINARY_SUBSCR_TUPLE_INT                 22
0167 #define CALL_PY_EXACT_ARGS                      23
0168 #define CALL_PY_WITH_DEFAULTS                   24
0169 #define CALL_BOUND_METHOD_EXACT_ARGS            28
0170 #define CALL_BUILTIN_CLASS                      29
0171 #define CALL_BUILTIN_FAST_WITH_KEYWORDS         34
0172 #define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS  38
0173 #define CALL_NO_KW_BUILTIN_FAST                 39
0174 #define CALL_NO_KW_BUILTIN_O                    40
0175 #define CALL_NO_KW_ISINSTANCE                   41
0176 #define CALL_NO_KW_LEN                          42
0177 #define CALL_NO_KW_LIST_APPEND                  43
0178 #define CALL_NO_KW_METHOD_DESCRIPTOR_FAST       44
0179 #define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS     45
0180 #define CALL_NO_KW_METHOD_DESCRIPTOR_O          46
0181 #define CALL_NO_KW_STR_1                        47
0182 #define CALL_NO_KW_TUPLE_1                      48
0183 #define CALL_NO_KW_TYPE_1                       56
0184 #define COMPARE_OP_FLOAT                        57
0185 #define COMPARE_OP_INT                          58
0186 #define COMPARE_OP_STR                          59
0187 #define FOR_ITER_LIST                           62
0188 #define FOR_ITER_TUPLE                          63
0189 #define FOR_ITER_RANGE                          64
0190 #define FOR_ITER_GEN                            65
0191 #define LOAD_SUPER_ATTR_ATTR                    66
0192 #define LOAD_SUPER_ATTR_METHOD                  67
0193 #define LOAD_ATTR_CLASS                         70
0194 #define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN       72
0195 #define LOAD_ATTR_INSTANCE_VALUE                73
0196 #define LOAD_ATTR_MODULE                        76
0197 #define LOAD_ATTR_PROPERTY                      77
0198 #define LOAD_ATTR_SLOT                          78
0199 #define LOAD_ATTR_WITH_HINT                     79
0200 #define LOAD_ATTR_METHOD_LAZY_DICT              80
0201 #define LOAD_ATTR_METHOD_NO_DICT                81
0202 #define LOAD_ATTR_METHOD_WITH_VALUES            82
0203 #define LOAD_CONST__LOAD_FAST                   84
0204 #define LOAD_FAST__LOAD_CONST                   86
0205 #define LOAD_FAST__LOAD_FAST                    88
0206 #define LOAD_GLOBAL_BUILTIN                    111
0207 #define LOAD_GLOBAL_MODULE                     112
0208 #define STORE_ATTR_INSTANCE_VALUE              113
0209 #define STORE_ATTR_SLOT                        148
0210 #define STORE_ATTR_WITH_HINT                   153
0211 #define STORE_FAST__LOAD_FAST                  154
0212 #define STORE_FAST__STORE_FAST                 158
0213 #define STORE_SUBSCR_DICT                      159
0214 #define STORE_SUBSCR_LIST_INT                  160
0215 #define UNPACK_SEQUENCE_LIST                   161
0216 #define UNPACK_SEQUENCE_TUPLE                  166
0217 #define UNPACK_SEQUENCE_TWO_TUPLE              167
0218 #define SEND_GEN                               168
0219 
0220 #define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\
0221     || ((op) == JUMP) \
0222     || ((op) == JUMP_NO_INTERRUPT) \
0223     || ((op) == LOAD_METHOD) \
0224     || ((op) == LOAD_SUPER_METHOD) \
0225     || ((op) == LOAD_ZERO_SUPER_METHOD) \
0226     || ((op) == LOAD_ZERO_SUPER_ATTR) \
0227     || ((op) == STORE_FAST_MAYBE_NULL) \
0228     )
0229 
0230 #define HAS_CONST(op) (false\
0231     || ((op) == LOAD_CONST) \
0232     || ((op) == RETURN_CONST) \
0233     || ((op) == KW_NAMES) \
0234     )
0235 
0236 #define NB_ADD                                   0
0237 #define NB_AND                                   1
0238 #define NB_FLOOR_DIVIDE                          2
0239 #define NB_LSHIFT                                3
0240 #define NB_MATRIX_MULTIPLY                       4
0241 #define NB_MULTIPLY                              5
0242 #define NB_REMAINDER                             6
0243 #define NB_OR                                    7
0244 #define NB_POWER                                 8
0245 #define NB_RSHIFT                                9
0246 #define NB_SUBTRACT                             10
0247 #define NB_TRUE_DIVIDE                          11
0248 #define NB_XOR                                  12
0249 #define NB_INPLACE_ADD                          13
0250 #define NB_INPLACE_AND                          14
0251 #define NB_INPLACE_FLOOR_DIVIDE                 15
0252 #define NB_INPLACE_LSHIFT                       16
0253 #define NB_INPLACE_MATRIX_MULTIPLY              17
0254 #define NB_INPLACE_MULTIPLY                     18
0255 #define NB_INPLACE_REMAINDER                    19
0256 #define NB_INPLACE_OR                           20
0257 #define NB_INPLACE_POWER                        21
0258 #define NB_INPLACE_RSHIFT                       22
0259 #define NB_INPLACE_SUBTRACT                     23
0260 #define NB_INPLACE_TRUE_DIVIDE                  24
0261 #define NB_INPLACE_XOR                          25
0262 
0263 /* Defined in Lib/opcode.py */
0264 #define ENABLE_SPECIALIZATION 1
0265 
0266 #define IS_PSEUDO_OPCODE(op) (((op) >= MIN_PSEUDO_OPCODE) && ((op) <= MAX_PSEUDO_OPCODE))
0267 
0268 #ifdef __cplusplus
0269 }
0270 #endif
0271 #endif /* !Py_OPCODE_H */