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