1 /* Auto-generated by Tools/scripts/generate_opcode_h.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 NOP 9 16 #define UNARY_POSITIVE 10 17 #define UNARY_NEGATIVE 11 18 #define UNARY_NOT 12 19 #define UNARY_INVERT 15 20 #define BINARY_MATRIX_MULTIPLY 16 21 #define INPLACE_MATRIX_MULTIPLY 17 22 #define BINARY_POWER 19 23 #define BINARY_MULTIPLY 20 24 #define BINARY_MODULO 22 25 #define BINARY_ADD 23 26 #define BINARY_SUBTRACT 24 27 #define BINARY_SUBSCR 25 28 #define BINARY_FLOOR_DIVIDE 26 29 #define BINARY_TRUE_DIVIDE 27 30 #define INPLACE_FLOOR_DIVIDE 28 31 #define INPLACE_TRUE_DIVIDE 29 32 #define GET_AITER 50 33 #define GET_ANEXT 51 34 #define BEFORE_ASYNC_WITH 52 35 #define INPLACE_ADD 55 36 #define INPLACE_SUBTRACT 56 37 #define INPLACE_MULTIPLY 57 38 #define INPLACE_MODULO 59 39 #define STORE_SUBSCR 60 40 #define DELETE_SUBSCR 61 41 #define BINARY_LSHIFT 62 42 #define BINARY_RSHIFT 63 43 #define BINARY_AND 64 44 #define BINARY_XOR 65 45 #define BINARY_OR 66 46 #define INPLACE_POWER 67 47 #define GET_ITER 68 48 #define GET_YIELD_FROM_ITER 69 49 #define PRINT_EXPR 70 50 #define LOAD_BUILD_CLASS 71 51 #define YIELD_FROM 72 52 #define GET_AWAITABLE 73 53 #define INPLACE_LSHIFT 75 54 #define INPLACE_RSHIFT 76 55 #define INPLACE_AND 77 56 #define INPLACE_XOR 78 57 #define INPLACE_OR 79 58 #define BREAK_LOOP 80 59 #define WITH_CLEANUP_START 81 60 #define WITH_CLEANUP_FINISH 82 61 #define RETURN_VALUE 83 62 #define IMPORT_STAR 84 63 #define SETUP_ANNOTATIONS 85 64 #define YIELD_VALUE 86 65 #define POP_BLOCK 87 66 #define END_FINALLY 88 67 #define POP_EXCEPT 89 68 #define HAVE_ARGUMENT 90 69 #define STORE_NAME 90 70 #define DELETE_NAME 91 71 #define UNPACK_SEQUENCE 92 72 #define FOR_ITER 93 73 #define UNPACK_EX 94 74 #define STORE_ATTR 95 75 #define DELETE_ATTR 96 76 #define STORE_GLOBAL 97 77 #define DELETE_GLOBAL 98 78 #define LOAD_CONST 100 79 #define LOAD_NAME 101 80 #define BUILD_TUPLE 102 81 #define BUILD_LIST 103 82 #define BUILD_SET 104 83 #define BUILD_MAP 105 84 #define LOAD_ATTR 106 85 #define COMPARE_OP 107 86 #define IMPORT_NAME 108 87 #define IMPORT_FROM 109 88 #define JUMP_FORWARD 110 89 #define JUMP_IF_FALSE_OR_POP 111 90 #define JUMP_IF_TRUE_OR_POP 112 91 #define JUMP_ABSOLUTE 113 92 #define POP_JUMP_IF_FALSE 114 93 #define POP_JUMP_IF_TRUE 115 94 #define LOAD_GLOBAL 116 95 #define CONTINUE_LOOP 119 96 #define SETUP_LOOP 120 97 #define SETUP_EXCEPT 121 98 #define SETUP_FINALLY 122 99 #define LOAD_FAST 124 100 #define STORE_FAST 125 101 #define DELETE_FAST 126 102 #define RAISE_VARARGS 130 103 #define CALL_FUNCTION 131 104 #define MAKE_FUNCTION 132 105 #define BUILD_SLICE 133 106 #define LOAD_CLOSURE 135 107 #define LOAD_DEREF 136 108 #define STORE_DEREF 137 109 #define DELETE_DEREF 138 110 #define CALL_FUNCTION_KW 141 111 #define CALL_FUNCTION_EX 142 112 #define SETUP_WITH 143 113 #define EXTENDED_ARG 144 114 #define LIST_APPEND 145 115 #define SET_ADD 146 116 #define MAP_ADD 147 117 #define LOAD_CLASSDEREF 148 118 #define BUILD_LIST_UNPACK 149 119 #define BUILD_MAP_UNPACK 150 120 #define BUILD_MAP_UNPACK_WITH_CALL 151 121 #define BUILD_TUPLE_UNPACK 152 122 #define BUILD_SET_UNPACK 153 123 #define SETUP_ASYNC_WITH 154 124 #define FORMAT_VALUE 155 125 #define BUILD_CONST_KEY_MAP 156 126 #define BUILD_STRING 157 127 #define BUILD_TUPLE_UNPACK_WITH_CALL 158 128 #define LOAD_METHOD 160 129 #define CALL_METHOD 161 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 138 enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE, 139 PyCmp_GT=Py_GT, PyCmp_GE=Py_GE, PyCmp_IN, PyCmp_NOT_IN, 140 PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD}; 141 142 #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) 143 144 #ifdef __cplusplus 145 } 146 #endif 147 #endif /* !Py_OPCODE_H */ 148