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 RERAISE                  48
34 #define WITH_EXCEPT_START        49
35 #define GET_AITER                50
36 #define GET_ANEXT                51
37 #define BEFORE_ASYNC_WITH        52
38 #define END_ASYNC_FOR            54
39 #define INPLACE_ADD              55
40 #define INPLACE_SUBTRACT         56
41 #define INPLACE_MULTIPLY         57
42 #define INPLACE_MODULO           59
43 #define STORE_SUBSCR             60
44 #define DELETE_SUBSCR            61
45 #define BINARY_LSHIFT            62
46 #define BINARY_RSHIFT            63
47 #define BINARY_AND               64
48 #define BINARY_XOR               65
49 #define BINARY_OR                66
50 #define INPLACE_POWER            67
51 #define GET_ITER                 68
52 #define GET_YIELD_FROM_ITER      69
53 #define PRINT_EXPR               70
54 #define LOAD_BUILD_CLASS         71
55 #define YIELD_FROM               72
56 #define GET_AWAITABLE            73
57 #define LOAD_ASSERTION_ERROR     74
58 #define INPLACE_LSHIFT           75
59 #define INPLACE_RSHIFT           76
60 #define INPLACE_AND              77
61 #define INPLACE_XOR              78
62 #define INPLACE_OR               79
63 #define LIST_TO_TUPLE            82
64 #define RETURN_VALUE             83
65 #define IMPORT_STAR              84
66 #define SETUP_ANNOTATIONS        85
67 #define YIELD_VALUE              86
68 #define POP_BLOCK                87
69 #define POP_EXCEPT               89
70 #define HAVE_ARGUMENT            90
71 #define STORE_NAME               90
72 #define DELETE_NAME              91
73 #define UNPACK_SEQUENCE          92
74 #define FOR_ITER                 93
75 #define UNPACK_EX                94
76 #define STORE_ATTR               95
77 #define DELETE_ATTR              96
78 #define STORE_GLOBAL             97
79 #define DELETE_GLOBAL            98
80 #define LOAD_CONST              100
81 #define LOAD_NAME               101
82 #define BUILD_TUPLE             102
83 #define BUILD_LIST              103
84 #define BUILD_SET               104
85 #define BUILD_MAP               105
86 #define LOAD_ATTR               106
87 #define COMPARE_OP              107
88 #define IMPORT_NAME             108
89 #define IMPORT_FROM             109
90 #define JUMP_FORWARD            110
91 #define JUMP_IF_FALSE_OR_POP    111
92 #define JUMP_IF_TRUE_OR_POP     112
93 #define JUMP_ABSOLUTE           113
94 #define POP_JUMP_IF_FALSE       114
95 #define POP_JUMP_IF_TRUE        115
96 #define LOAD_GLOBAL             116
97 #define IS_OP                   117
98 #define CONTAINS_OP             118
99 #define JUMP_IF_NOT_EXC_MATCH   121
100 #define SETUP_FINALLY           122
101 #define LOAD_FAST               124
102 #define STORE_FAST              125
103 #define DELETE_FAST             126
104 #define RAISE_VARARGS           130
105 #define CALL_FUNCTION           131
106 #define MAKE_FUNCTION           132
107 #define BUILD_SLICE             133
108 #define LOAD_CLOSURE            135
109 #define LOAD_DEREF              136
110 #define STORE_DEREF             137
111 #define DELETE_DEREF            138
112 #define CALL_FUNCTION_KW        141
113 #define CALL_FUNCTION_EX        142
114 #define SETUP_WITH              143
115 #define EXTENDED_ARG            144
116 #define LIST_APPEND             145
117 #define SET_ADD                 146
118 #define MAP_ADD                 147
119 #define LOAD_CLASSDEREF         148
120 #define SETUP_ASYNC_WITH        154
121 #define FORMAT_VALUE            155
122 #define BUILD_CONST_KEY_MAP     156
123 #define BUILD_STRING            157
124 #define LOAD_METHOD             160
125 #define CALL_METHOD             161
126 #define LIST_EXTEND             162
127 #define SET_UPDATE              163
128 #define DICT_MERGE              164
129 #define DICT_UPDATE             165
130 
131 /* EXCEPT_HANDLER is a special, implicit block type which is created when
132    entering an except handler. It is not an opcode but we define it here
133    as we want it to be available to both frameobject.c and ceval.c, while
134    remaining private.*/
135 #define EXCEPT_HANDLER 257
136 
137 #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
138 
139 #ifdef __cplusplus
140 }
141 #endif
142 #endif /* !Py_OPCODE_H */
143