1 | /* Auto-generated by Tools/scripts/generate_opcode_h.py from Lib/opcode.py */ |
2 | #ifndef Py_OPCODE_H |
3 | #define Py_OPCODE_H |
4 | #ifdef __cplusplus |
5 | extern "C" { |
6 | #endif |
7 | |
8 | |
9 | /* Instruction opcodes for compiled code */ |
10 | #define POP_TOP 1 |
11 | #define ROT_TWO 2 |
12 | #define ROT_THREE 3 |
13 | #define DUP_TOP 4 |
14 | #define DUP_TOP_TWO 5 |
15 | #define ROT_FOUR 6 |
16 | #define NOP 9 |
17 | #define UNARY_POSITIVE 10 |
18 | #define UNARY_NEGATIVE 11 |
19 | #define UNARY_NOT 12 |
20 | #define UNARY_INVERT 15 |
21 | #define BINARY_MATRIX_MULTIPLY 16 |
22 | #define INPLACE_MATRIX_MULTIPLY 17 |
23 | #define BINARY_POWER 19 |
24 | #define BINARY_MULTIPLY 20 |
25 | #define BINARY_MODULO 22 |
26 | #define BINARY_ADD 23 |
27 | #define BINARY_SUBTRACT 24 |
28 | #define BINARY_SUBSCR 25 |
29 | #define BINARY_FLOOR_DIVIDE 26 |
30 | #define BINARY_TRUE_DIVIDE 27 |
31 | #define INPLACE_FLOOR_DIVIDE 28 |
32 | #define INPLACE_TRUE_DIVIDE 29 |
33 | #define GET_LEN 30 |
34 | #define MATCH_MAPPING 31 |
35 | #define MATCH_SEQUENCE 32 |
36 | #define MATCH_KEYS 33 |
37 | #define COPY_DICT_WITHOUT_KEYS 34 |
38 | #define WITH_EXCEPT_START 49 |
39 | #define GET_AITER 50 |
40 | #define GET_ANEXT 51 |
41 | #define BEFORE_ASYNC_WITH 52 |
42 | #define END_ASYNC_FOR 54 |
43 | #define INPLACE_ADD 55 |
44 | #define INPLACE_SUBTRACT 56 |
45 | #define INPLACE_MULTIPLY 57 |
46 | #define INPLACE_MODULO 59 |
47 | #define STORE_SUBSCR 60 |
48 | #define DELETE_SUBSCR 61 |
49 | #define BINARY_LSHIFT 62 |
50 | #define BINARY_RSHIFT 63 |
51 | #define BINARY_AND 64 |
52 | #define BINARY_XOR 65 |
53 | #define BINARY_OR 66 |
54 | #define INPLACE_POWER 67 |
55 | #define GET_ITER 68 |
56 | #define GET_YIELD_FROM_ITER 69 |
57 | #define PRINT_EXPR 70 |
58 | #define LOAD_BUILD_CLASS 71 |
59 | #define YIELD_FROM 72 |
60 | #define GET_AWAITABLE 73 |
61 | #define LOAD_ASSERTION_ERROR 74 |
62 | #define INPLACE_LSHIFT 75 |
63 | #define INPLACE_RSHIFT 76 |
64 | #define INPLACE_AND 77 |
65 | #define INPLACE_XOR 78 |
66 | #define INPLACE_OR 79 |
67 | #define LIST_TO_TUPLE 82 |
68 | #define RETURN_VALUE 83 |
69 | #define IMPORT_STAR 84 |
70 | #define SETUP_ANNOTATIONS 85 |
71 | #define YIELD_VALUE 86 |
72 | #define POP_BLOCK 87 |
73 | #define POP_EXCEPT 89 |
74 | #define HAVE_ARGUMENT 90 |
75 | #define STORE_NAME 90 |
76 | #define DELETE_NAME 91 |
77 | #define UNPACK_SEQUENCE 92 |
78 | #define FOR_ITER 93 |
79 | #define UNPACK_EX 94 |
80 | #define STORE_ATTR 95 |
81 | #define DELETE_ATTR 96 |
82 | #define STORE_GLOBAL 97 |
83 | #define DELETE_GLOBAL 98 |
84 | #define ROT_N 99 |
85 | #define LOAD_CONST 100 |
86 | #define LOAD_NAME 101 |
87 | #define BUILD_TUPLE 102 |
88 | #define BUILD_LIST 103 |
89 | #define BUILD_SET 104 |
90 | #define BUILD_MAP 105 |
91 | #define LOAD_ATTR 106 |
92 | #define COMPARE_OP 107 |
93 | #define IMPORT_NAME 108 |
94 | #define IMPORT_FROM 109 |
95 | #define JUMP_FORWARD 110 |
96 | #define JUMP_IF_FALSE_OR_POP 111 |
97 | #define JUMP_IF_TRUE_OR_POP 112 |
98 | #define JUMP_ABSOLUTE 113 |
99 | #define POP_JUMP_IF_FALSE 114 |
100 | #define POP_JUMP_IF_TRUE 115 |
101 | #define LOAD_GLOBAL 116 |
102 | #define IS_OP 117 |
103 | #define CONTAINS_OP 118 |
104 | #define RERAISE 119 |
105 | #define JUMP_IF_NOT_EXC_MATCH 121 |
106 | #define SETUP_FINALLY 122 |
107 | #define LOAD_FAST 124 |
108 | #define STORE_FAST 125 |
109 | #define DELETE_FAST 126 |
110 | #define GEN_START 129 |
111 | #define RAISE_VARARGS 130 |
112 | #define CALL_FUNCTION 131 |
113 | #define MAKE_FUNCTION 132 |
114 | #define BUILD_SLICE 133 |
115 | #define LOAD_CLOSURE 135 |
116 | #define LOAD_DEREF 136 |
117 | #define STORE_DEREF 137 |
118 | #define DELETE_DEREF 138 |
119 | #define CALL_FUNCTION_KW 141 |
120 | #define CALL_FUNCTION_EX 142 |
121 | #define SETUP_WITH 143 |
122 | #define EXTENDED_ARG 144 |
123 | #define LIST_APPEND 145 |
124 | #define SET_ADD 146 |
125 | #define MAP_ADD 147 |
126 | #define LOAD_CLASSDEREF 148 |
127 | #define MATCH_CLASS 152 |
128 | #define SETUP_ASYNC_WITH 154 |
129 | #define FORMAT_VALUE 155 |
130 | #define BUILD_CONST_KEY_MAP 156 |
131 | #define BUILD_STRING 157 |
132 | #define LOAD_METHOD 160 |
133 | #define CALL_METHOD 161 |
134 | #define LIST_EXTEND 162 |
135 | #define SET_UPDATE 163 |
136 | #define DICT_MERGE 164 |
137 | #define DICT_UPDATE 165 |
138 | #ifdef NEED_OPCODE_JUMP_TABLES |
139 | static uint32_t _PyOpcode_RelativeJump[8] = { |
140 | 0U, |
141 | 0U, |
142 | 536870912U, |
143 | 67125248U, |
144 | 67141632U, |
145 | 0U, |
146 | 0U, |
147 | 0U, |
148 | }; |
149 | static uint32_t _PyOpcode_Jump[8] = { |
150 | 0U, |
151 | 0U, |
152 | 536870912U, |
153 | 101695488U, |
154 | 67141632U, |
155 | 0U, |
156 | 0U, |
157 | 0U, |
158 | }; |
159 | #endif /* OPCODE_TABLES */ |
160 | |
161 | /* EXCEPT_HANDLER is a special, implicit block type which is created when |
162 | entering an except handler. It is not an opcode but we define it here |
163 | as we want it to be available to both frameobject.c and ceval.c, while |
164 | remaining private.*/ |
165 | #define EXCEPT_HANDLER 257 |
166 | |
167 | #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) |
168 | |
169 | #ifdef __cplusplus |
170 | } |
171 | #endif |
172 | #endif /* !Py_OPCODE_H */ |
173 | |