X Tutup
package org.python.core; // derived from CPython 2.7.12 Include/opcode.h public interface Opcode { /* Instruction opcodes for compiled code */ public static final int STOP_CODE = 0; public static final int POP_TOP = 1; public static final int ROT_TWO = 2; public static final int ROT_THREE = 3; public static final int DUP_TOP = 4; public static final int ROT_FOUR = 5; public static final int NOP = 9; public static final int UNARY_POSITIVE = 10; public static final int UNARY_NEGATIVE = 11; public static final int UNARY_NOT = 12; public static final int UNARY_CONVERT = 13; public static final int UNARY_INVERT = 15; public static final int BINARY_POWER = 19; public static final int BINARY_MULTIPLY = 20; public static final int BINARY_DIVIDE = 21; public static final int BINARY_MODULO = 22; public static final int BINARY_ADD = 23; public static final int BINARY_SUBTRACT = 24; public static final int BINARY_SUBSCR = 25; public static final int BINARY_FLOOR_DIVIDE = 26; public static final int BINARY_TRUE_DIVIDE = 27; public static final int INPLACE_FLOOR_DIVIDE = 28; public static final int INPLACE_TRUE_DIVIDE = 29; public static final int SLICE = 30; /* Also uses 31-33 */ public static final int SLICE_1 = 31; public static final int SLICE_2 = 32; public static final int SLICE_3 = 33; public static final int STORE_SLICE = 40; /* Also uses 41-43 */ public static final int STORE_SLICE_1 = 41; public static final int STORE_SLICE_2 = 42; public static final int STORE_SLICE_3 = 43; public static final int DELETE_SLICE = 50; /* Also uses 51-53 */ public static final int DELETE_SLICE_1 = 51; public static final int DELETE_SLICE_2 = 52; public static final int DELETE_SLICE_3 = 53; public static final int STORE_MAP = 54; public static final int INPLACE_ADD = 55; public static final int INPLACE_SUBTRACT = 56; public static final int INPLACE_MULTIPLY = 57; public static final int INPLACE_DIVIDE = 58; public static final int INPLACE_MODULO = 59; public static final int STORE_SUBSCR = 60; public static final int DELETE_SUBSCR = 61; public static final int BINARY_LSHIFT = 62; public static final int BINARY_RSHIFT = 63; public static final int BINARY_AND = 64; public static final int BINARY_XOR = 65; public static final int BINARY_OR = 66; public static final int INPLACE_POWER = 67; public static final int GET_ITER = 68; public static final int PRINT_EXPR = 70; public static final int PRINT_ITEM = 71; public static final int PRINT_NEWLINE = 72; public static final int PRINT_ITEM_TO = 73; public static final int PRINT_NEWLINE_TO = 74; public static final int INPLACE_LSHIFT = 75; public static final int INPLACE_RSHIFT = 76; public static final int INPLACE_AND = 77; public static final int INPLACE_XOR = 78; public static final int INPLACE_OR = 79; public static final int BREAK_LOOP = 80; public static final int WITH_CLEANUP = 81; public static final int LOAD_LOCALS = 82; public static final int RETURN_VALUE = 83; public static final int IMPORT_STAR = 84; public static final int EXEC_STMT = 85; public static final int YIELD_VALUE = 86; public static final int POP_BLOCK = 87; public static final int END_FINALLY = 88; public static final int BUILD_CLASS = 89; public static final int HAVE_ARGUMENT = 90; /* Opcodes from here have an argument: */ public static final int STORE_NAME = 90; /* Index in name list */ public static final int DELETE_NAME = 91; /* "" */ public static final int UNPACK_SEQUENCE = 92; /* Number of sequence items */ public static final int FOR_ITER = 93; public static final int LIST_APPEND = 94; public static final int STORE_ATTR = 95; /* Index in name list */ public static final int DELETE_ATTR = 96; /* "" */ public static final int STORE_GLOBAL = 97; /* "" */ public static final int DELETE_GLOBAL = 98; /* "" */ public static final int DUP_TOPX = 99; /* number of items to duplicate */ public static final int LOAD_CONST = 100; /* Index in const list */ public static final int LOAD_NAME = 101; /* Index in name list */ public static final int BUILD_TUPLE = 102; /* Number of tuple items */ public static final int BUILD_LIST = 103; /* Number of list items */ public static final int BUILD_SET = 104; /* Number of set items */ public static final int BUILD_MAP = 105; /* Always zero for now */ public static final int LOAD_ATTR = 106; /* Index in name list */ public static final int COMPARE_OP = 107; /* Comparison operator */ public static final int IMPORT_NAME = 108; /* Index in name list */ public static final int IMPORT_FROM = 109; /* Index in name list */ public static final int JUMP_FORWARD = 110; /* Number of bytes to skip */ public static final int JUMP_IF_FALSE_OR_POP = 111; /* Target byte offset from beginning of code */ public static final int JUMP_IF_TRUE_OR_POP = 112; /* "" */ public static final int JUMP_ABSOLUTE = 113; /* "" */ public static final int POP_JUMP_IF_FALSE = 114; /* "" */ public static final int POP_JUMP_IF_TRUE = 115; /* "" */ public static final int LOAD_GLOBAL = 116; /* Index in name list */ public static final int CONTINUE_LOOP = 119; /* Start of loop (absolute) */ public static final int SETUP_LOOP = 120; /* Target address (relative) */ public static final int SETUP_EXCEPT = 121; /* "" */ public static final int SETUP_FINALLY = 122; /* "" */ public static final int LOAD_FAST = 124; /* Local variable number */ public static final int STORE_FAST = 125; /* Local variable number */ public static final int DELETE_FAST = 126; /* Local variable number */ public static final int RAISE_VARARGS = 130; /* Number of raise arguments (1, 2 or 3) */ /* CALL_FUNCTION_XXX opcodes defined below depend on this definition */ public static final int CALL_FUNCTION = 131; /* #args + (#kwargs<<8) */ public static final int MAKE_FUNCTION = 132; /* #defaults */ public static final int BUILD_SLICE = 133; /* Number of items */ public static final int MAKE_CLOSURE = 134; /* #free vars */ public static final int LOAD_CLOSURE = 135; /* Load free variable from closure */ public static final int LOAD_DEREF = 136; /* Load and dereference from closure cell */ public static final int STORE_DEREF = 137; /* Store into cell */ /* The next 3 opcodes must be contiguous and satisfy (CALL_FUNCTION_VAR - CALL_FUNCTION) & 3 == 1 */ public static final int CALL_FUNCTION_VAR = 140; /* #args + (#kwargs<<8) */ public static final int CALL_FUNCTION_KW = 141; /* #args + (#kwargs<<8) */ public static final int CALL_FUNCTION_VAR_KW = 142; /* #args + (#kwargs<<8) */ public static final int SETUP_WITH = 143; /* Support for opargs more than 16 bits long */ public static final int EXTENDED_ARG = 145; public static final int SET_ADD = 146; public static final int MAP_ADD = 147; // comparison opcodes (on the oparg), just put in this class too public static final int PyCmp_LT = 0; public static final int PyCmp_LE = 1; public static final int PyCmp_EQ = 2; public static final int PyCmp_NE = 3; public static final int PyCmp_GT = 4; public static final int PyCmp_GE = 5; public static final int PyCmp_IN = 6; public static final int PyCmp_NOT_IN = 7; public static final int PyCmp_IS = 8; public static final int PyCmp_IS_NOT = 9; public static final int PyCmp_EXC_MATCH = 10; public static final int PyCmp_BAD = 11; }
X Tutup