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