File indexing completed on 2025-01-18 10:06:49
0001
0002
0003 #ifndef Py_OPCODE_H
0004 #define Py_OPCODE_H
0005 #ifdef __cplusplus
0006 extern "C" {
0007 #endif
0008
0009
0010
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
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