diff --git a/ASTree.cpp b/ASTree.cpp index 4532ccc5e..6045dddd8 100644 --- a/ASTree.cpp +++ b/ASTree.cpp @@ -418,6 +418,7 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) break; case Pyc::CALL_A: case Pyc::CALL_FUNCTION_A: + case Pyc::INSTRUMENTED_CALL_A: { int kwparams = (operand & 0xFF00) >> 8; int pparams = (operand & 0xFF); @@ -431,8 +432,8 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) bases.resize(basecnt); PycRef TOS = stack.top(); int TOS_type = TOS.type(); - // bases are NODE_NAME at TOS - while (TOS_type == ASTNode::NODE_NAME) { + // bases are NODE_NAME and NODE_BINARY at TOS + while (TOS_type == ASTNode::NODE_NAME || TOS_type == ASTNode::NODE_BINARY) { bases.resize(basecnt + 1); bases[basecnt] = TOS; basecnt++; @@ -508,8 +509,10 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) } PycRef func = stack.top(); stack.pop(); - if (opcode == Pyc::CALL_A && stack.top() == nullptr) + if ((opcode == Pyc::CALL_A || opcode == Pyc::INSTRUMENTED_CALL_A) && + stack.top() == nullptr) { stack.pop(); + } stack.push(new ASTCall(func, pparamList, kwparamList)); } @@ -635,7 +638,10 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) stack.pop(); PycRef left = stack.top(); stack.pop(); - stack.push(new ASTCompare(left, right, operand)); + auto arg = operand; + if (mod->verCompare(3, 12) >= 0) + arg >>= 4; // changed under GH-100923 + stack.push(new ASTCompare(left, right, arg)); } break; case Pyc::CONTAINS_OP_A: @@ -880,6 +886,7 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) } break; case Pyc::FOR_ITER_A: + case Pyc::INSTRUMENTED_FOR_ITER_A: { PycRef iter = stack.top(); // Iterable stack.pop(); @@ -1041,6 +1048,8 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) case Pyc::POP_JUMP_FORWARD_IF_FALSE_A: case Pyc::JUMP_IF_NOT_EXC_MATCH_A: case Pyc::POP_JUMP_FORWARD_IF_TRUE_A: + case Pyc::INSTRUMENTED_POP_JUMP_IF_FALSE_A: + case Pyc::INSTRUMENTED_POP_JUMP_IF_TRUE_A: { PycRef cond = stack.top(); PycRef ifblk; @@ -1049,7 +1058,9 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) if (opcode == Pyc::POP_JUMP_IF_FALSE_A || opcode == Pyc::POP_JUMP_IF_TRUE_A || opcode == Pyc::POP_JUMP_FORWARD_IF_FALSE_A - || opcode == Pyc::POP_JUMP_FORWARD_IF_TRUE_A) { + || opcode == Pyc::POP_JUMP_FORWARD_IF_TRUE_A + || opcode == Pyc::INSTRUMENTED_POP_JUMP_IF_FALSE_A + || opcode == Pyc::INSTRUMENTED_POP_JUMP_IF_TRUE_A) { /* Pop condition before the jump */ stack.pop(); popped = ASTCondBlock::PRE_POPPED; @@ -1069,12 +1080,14 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) bool neg = opcode == Pyc::JUMP_IF_TRUE_A || opcode == Pyc::JUMP_IF_TRUE_OR_POP_A || opcode == Pyc::POP_JUMP_IF_TRUE_A - || opcode == Pyc::POP_JUMP_FORWARD_IF_TRUE_A; + || opcode == Pyc::POP_JUMP_FORWARD_IF_TRUE_A + || opcode == Pyc::INSTRUMENTED_POP_JUMP_IF_TRUE_A; int offs = operand; if (mod->verCompare(3, 10) >= 0) offs *= sizeof(uint16_t); // // BPO-27129 - if (opcode == Pyc::JUMP_IF_FALSE_A + if (mod->verCompare(3, 12) >= 0 + || opcode == Pyc::JUMP_IF_FALSE_A || opcode == Pyc::JUMP_IF_TRUE_A || opcode == Pyc::POP_JUMP_FORWARD_IF_TRUE_A || opcode == Pyc::POP_JUMP_FORWARD_IF_FALSE_A) { @@ -1271,6 +1284,7 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) } break; case Pyc::JUMP_FORWARD_A: + case Pyc::INSTRUMENTED_JUMP_FORWARD_A: { int offs = operand; if (mod->verCompare(3, 10) >= 0) @@ -1783,6 +1797,7 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) } break; case Pyc::RETURN_VALUE: + case Pyc::INSTRUMENTED_RETURN_VALUE_A: { PycRef value = stack.top(); stack.pop(); @@ -1804,6 +1819,13 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) } } break; + case Pyc::RETURN_CONST_A: + case Pyc::INSTRUMENTED_RETURN_CONST_A: + { + PycRef value = new ASTObject(code->getConst(operand)); + curblock->append(new ASTReturn(value.cast())); + } + break; case Pyc::ROT_TWO: { PycRef one = stack.top(); @@ -2405,6 +2427,7 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) } break; case Pyc::YIELD_VALUE: + case Pyc::INSTRUMENTED_YIELD_VALUE_A: { PycRef value = stack.top(); stack.pop(); @@ -2416,6 +2439,7 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) break; case Pyc::PRECALL_A: case Pyc::RESUME_A: + case Pyc::INSTRUMENTED_RESUME_A: /* We just entirely ignore this / no-op */ break; case Pyc::CACHE: @@ -2427,6 +2451,9 @@ PycRef BuildFromCode(PycRef code, PycModule* mod) case Pyc::PUSH_NULL: stack.push(nullptr); break; + case Pyc::GEN_START_A: + stack.pop(); + break; default: fprintf(stderr, "Unsupporteddwhere opcode: %s\n", Pyc::OpcodeName(opcode & 0xFF)); cleanBuild = false; @@ -3352,7 +3379,9 @@ void decompyle(PycRef code, PycModule* mod, std::ostream& pyc_output) if (clean->nodes().back().type() == ASTNode::NODE_RETURN) { PycRef ret = clean->nodes().back().cast(); - if (ret->value() == NULL || ret->value().type() == ASTNode::NODE_LOCALS) { + PycRef retObj = ret->value().try_cast(); + if (ret->value() == NULL || ret->value().type() == ASTNode::NODE_LOCALS || + (retObj && retObj->object().type() == PycObject::TYPE_NONE)) { clean->removeLast(); // Always an extraneous return statement } } diff --git a/CMakeLists.txt b/CMakeLists.txt index c8bcf9730..b2dd5dae5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.12) project(pycdc) set(CMAKE_CXX_STANDARD 11) @@ -16,9 +16,6 @@ if (ENABLE_STACK_DEBUG) add_definitions(-DSTACK_DEBUG) endif() -# For generating the bytes tables -find_package(PythonInterp REQUIRED) - if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wshadow -Werror ${CMAKE_CXX_FLAGS}") elseif(MSVC) @@ -26,26 +23,6 @@ elseif(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() -set(PYTHON_VERSIONS - 10 11 13 14 15 16 # Python 1.1 and 1.2 are marshal-identical - 20 21 22 23 24 25 26 27 - 30 31 32 33 34 35 36 37 38 39 310 311 -) - -foreach(ver ${PYTHON_VERSIONS}) - list(APPEND MAP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/bytes/python_${ver}.map) - list(APPEND MAP_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/bytes/python_${ver}.cpp) -endforeach() - -add_custom_command(OUTPUT ${MAP_SOURCES} - COMMAND ${PYTHON_EXECUTABLE} - ${CMAKE_CURRENT_SOURCE_DIR}/bytes/comp_map.py - ${CMAKE_CURRENT_SOURCE_DIR}/bytes - ${CMAKE_CURRENT_BINARY_DIR}/bytes - DEPENDS ${MAP_FILES} - ${CMAKE_CURRENT_SOURCE_DIR}/bytes/comp_map.py -) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_library(pycxx STATIC @@ -57,7 +34,33 @@ add_library(pycxx STATIC pyc_object.cpp pyc_sequence.cpp pyc_string.cpp - ${MAP_SOURCES} + bytes/python_1_0.cpp + bytes/python_1_1.cpp + bytes/python_1_3.cpp + bytes/python_1_4.cpp + bytes/python_1_5.cpp + bytes/python_1_6.cpp + bytes/python_2_0.cpp + bytes/python_2_1.cpp + bytes/python_2_2.cpp + bytes/python_2_3.cpp + bytes/python_2_4.cpp + bytes/python_2_5.cpp + bytes/python_2_6.cpp + bytes/python_2_7.cpp + bytes/python_3_0.cpp + bytes/python_3_1.cpp + bytes/python_3_2.cpp + bytes/python_3_3.cpp + bytes/python_3_4.cpp + bytes/python_3_5.cpp + bytes/python_3_6.cpp + bytes/python_3_7.cpp + bytes/python_3_8.cpp + bytes/python_3_9.cpp + bytes/python_3_10.cpp + bytes/python_3_11.cpp + bytes/python_3_12.cpp ) add_executable(pycdas pycdas.cpp) diff --git a/PythonBytecode.txt b/PythonBytecode.txt deleted file mode 100644 index 3f2066d62..000000000 --- a/PythonBytecode.txt +++ /dev/null @@ -1,828 +0,0 @@ -Python MAGIC Python MAGIC Python MAGIC -1.0 0x00999902 2.0 0x0A0DC687 3.0 0x0A0D0C3A -1.1 0x00999903 2.1 0x0A0DEB2A 3.1 0x0A0D0C4E -1.2 0x00999903 2.2 0x0A0DED2D 3.2 0x0A0D0C6C -1.3 0x0A0D2E89 2.3 0x0A0DF23B 3.3 0x0A0D0C9E -1.4 0x0A0D1704 2.4 0x0A0DF26D 3.4 0x0A0D0CEE -1.5 0x0A0D4E99 2.5 0x0A0DF2B3 3.5 0x0A0D0D16 -1.6 0x0A0DC4FC 2.6 0x0A0DF2D1 3.5.3 0x0A0D0D17 - 2.7 0x0A0DF303 3.6 0x0A0D0D33 - 3.7 0x0A0D0D42 - 3.8 0x0A0D0D55 - 3.9 0x0A0D0D61 - 3.10 0x0A0D0D6F - 3.11 0x0A0D0DA7 - - - 1.0 1.1 1.2 1.3 1.4 1.5 1.6 -STOP_CODE [X] [X] [X] [X] [X] [X] [X] -POP_TOP [X] [X] [X] [X] [X] [X] [X] -ROT_TWO [X] [X] [X] [X] [X] [X] [X] -ROT_THREE [X] [X] [X] [X] [X] [X] [X] -DUP_TOP [X] [X] [X] [X] [X] [X] [X] -<5> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<6> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<7> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<8> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<9> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -UNARY_POSITIVE [X] [X] [X] [X] [X] [X] [X] -UNARY_NEGATIVE [X] [X] [X] [X] [X] [X] [X] -UNARY_NOT [X] [X] [X] [X] [X] [X] [X] -UNARY_CONVERT [X] [X] [X] [X] [X] [X] [X] -UNARY_CALL [X] [X] [X] [X] [X] [ ] [ ] -UNARY_INVERT [X] [X] [X] [X] [X] [X] [X] -<16> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<17> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<18> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -BINARY_POWER [ ] [ ] [ ] [ ] [X] [X] [X] -BINARY_MULTIPLY [X] [X] [X] [X] [X] [X] [X] -BINARY_DIVIDE [X] [X] [X] [X] [X] [X] [X] -BINARY_MODULO [X] [X] [X] [X] [X] [X] [X] -BINARY_ADD [X] [X] [X] [X] [X] [X] [X] -BINARY_SUBTRACT [X] [X] [X] [X] [X] [X] [X] -BINARY_SUBSCR [X] [X] [X] [X] [X] [X] [X] -BINARY_CALL [X] [X] [X] [X] [X] [ ] [ ] -<27> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<28> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<29> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -SLICE+0 [X] [X] [X] [X] [X] [X] [X] -SLICE+1 [X] [X] [X] [X] [X] [X] [X] -SLICE+2 [X] [X] [X] [X] [X] [X] [X] -SLICE+3 [X] [X] [X] [X] [X] [X] [X] -<34> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<35> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<36> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<37> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<38> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<39> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -STORE_SLICE+0 [X] [X] [X] [X] [X] [X] [X] -STORE_SLICE+1 [X] [X] [X] [X] [X] [X] [X] -STORE_SLICE+2 [X] [X] [X] [X] [X] [X] [X] -STORE_SLICE+3 [X] [X] [X] [X] [X] [X] [X] -<44> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<45> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<46> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<47> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<48> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<49> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -DELETE_SLICE+0 [X] [X] [X] [X] [X] [X] [X] -DELETE_SLICE+1 [X] [X] [X] [X] [X] [X] [X] -DELETE_SLICE+2 [X] [X] [X] [X] [X] [X] [X] -DELETE_SLICE+3 [X] [X] [X] [X] [X] [X] [X] -<54> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<55> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<56> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<57> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<58> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<59> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -STORE_SUBSCR [X] [X] [X] [X] [X] [X] [X] -DELETE_SUBSCR [X] [X] [X] [X] [X] [X] [X] -BINARY_LSHIFT [ ] [ ] [ ] [ ] [ ] [X] [X] -BINARY_RSHIFT [ ] [ ] [ ] [ ] [ ] [X] [X] -BINARY_AND [ ] [ ] [ ] [ ] [ ] [X] [X] -BINARY_XOR [ ] [ ] [ ] [ ] [ ] [X] [X] -BINARY_OR [ ] [ ] [ ] [ ] [ ] [X] [X] -<67> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<68> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<69> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -PRINT_EXPR [X] [X] [X] [X] [X] [X] [X] -PRINT_ITEM [X] [X] [X] [X] [X] [X] [X] -PRINT_NEWLINE [X] [X] [X] [X] [X] [X] [X] -<73> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<74> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<75> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<76> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<77> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<78> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<79> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -BREAK_LOOP [X] [X] [X] [X] [X] [X] [X] -RAISE_EXCEPTION [X] [X] [X] [X] [X] [ ] [ ] -LOAD_LOCALS [X] [X] [X] [X] [X] [X] [X] -RETURN_VALUE [X] [X] [X] [X] [X] [X] [X] -LOAD_GLOBALS [ ] [X] [X] [X] [ ] [ ] [ ] -EXEC_STMT [ ] [X] [X] [X] [X] [X] [X] -BUILD_FUNCTION [X] [X] [X] [X] [X] [ ] [ ] -POP_BLOCK [X] [X] [X] [X] [X] [X] [X] -END_FINALLY [X] [X] [X] [X] [X] [X] [X] -BUILD_CLASS [X] [X] [X] [X] [X] [X] [X] -STORE_NAME [X] [X] [X] [X] [X] [X] [X] -DELETE_NAME [X] [X] [X] [X] [X] [X] [X] -UNPACK_TUPLE [X] [X] [X] [X] [X] [X] [X] -UNPACK_LIST [X] [X] [X] [X] [X] [X] [X] -UNPACK_ARG [X] [X] [X] [X] [X] [ ] [ ] -STORE_ATTR [X] [X] [X] [X] [X] [X] [X] -DELETE_ATTR [X] [X] [X] [X] [X] [X] [X] -STORE_GLOBAL [X] [X] [X] [X] [X] [X] [X] -DELETE_GLOBAL [X] [X] [X] [X] [X] [X] [X] -UNPACK_VARARG [X] [X] [X] [X] [X] [ ] [ ] -LOAD_CONST [X] [X] [X] [X] [X] [X] [X] -LOAD_NAME [X] [X] [X] [X] [X] [X] [X] -BUILD_TUPLE [X] [X] [X] [X] [X] [X] [X] -BUILD_LIST [X] [X] [X] [X] [X] [X] [X] -BUILD_MAP [X] [X] [X] [X] [X] [X] [X] -LOAD_ATTR [X] [X] [X] [X] [X] [X] [X] -COMPARE_OP [X] [X] [X] [X] [X] [X] [X] -IMPORT_NAME [X] [X] [X] [X] [X] [X] [X] -IMPORT_FROM [X] [X] [X] [X] [X] [X] [X] -<109> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -JUMP_FORWARD [X] [X] [X] [X] [X] [X] [X] -JUMP_IF_FALSE [X] [X] [X] [X] [X] [X] [X] -JUMP_IF_TRUE [X] [X] [X] [X] [X] [X] [X] -JUMP_ABSOLUTE [X] [X] [X] [X] [X] [X] [X] -FOR_LOOP [X] [X] [X] [X] [X] [X] [X] -LOAD_LOCAL [X] [X] [X] [X] [X] [ ] [ ] -LOAD_GLOBAL [X] [X] [X] [X] [X] [X] [X] -SET_FUNC_ARGS [ ] [X] [X] [X] [X] [ ] [ ] -<118> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<119> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -SETUP_LOOP [X] [X] [X] [X] [X] [X] [X] -SETUP_EXCEPT [X] [X] [X] [X] [X] [X] [X] -SETUP_FINALLY [X] [X] [X] [X] [X] [X] [X] -RESERVE_FAST [X] [X] [X] [X] [X] [ ] [ ] -LOAD_FAST [X] [X] [X] [X] [X] [X] [X] -STORE_FAST [X] [X] [X] [X] [X] [X] [X] -DELETE_FAST [X] [X] [X] [X] [X] [X] [X] -SET_LINENO [X] [X] [X] [X] [X] [X] [X] -<128> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<129> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -RAISE_VARARGS [ ] [ ] [ ] [ ] [X] [X] [X] -CALL_FUNCTION [ ] [ ] [ ] [ ] [X] [X] [X] -MAKE_FUNCTION [ ] [ ] [ ] [ ] [X] [X] [X] -BUILD_SLICE [ ] [ ] [ ] [ ] [X] [X] [X] -<134> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<135> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<136> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<137> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<138> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<139> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -CALL_FUNCTION_VAR [ ] [ ] [ ] [ ] [ ] [ ] [X] -CALL_FUNCTION_KW [ ] [ ] [ ] [ ] [ ] [ ] [X] -CALL_FUNCTION_VAR_KW [ ] [ ] [ ] [ ] [ ] [ ] [X] -<143> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<144> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<145> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<146> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<147> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<148> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<149> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<150> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<151> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<152> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<153> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<154> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<155> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<156> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<157> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<158> [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<159> [ ] [ ] [ ] [ ] [ ] [ ] [ ] - . - . - . - - - 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 -STOP_CODE [X] [X] [X] [X] [X] [X] [X] [X] -POP_TOP [X] [X] [X] [X] [X] [X] [X] [X] -ROT_TWO [X] [X] [X] [X] [X] [X] [X] [X] -ROT_THREE [X] [X] [X] [X] [X] [X] [X] [X] -DUP_TOP [X] [X] [X] [X] [X] [X] [X] [X] -ROT_FOUR [X] [X] [X] [X] [X] [X] [X] [X] -<6> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<7> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<8> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -NOP [ ] [ ] [ ] [ ] [X] [X] [X] [X] -UNARY_POSITIVE [X] [X] [X] [X] [X] [X] [X] [X] -UNARY_NEGATIVE [X] [X] [X] [X] [X] [X] [X] [X] -UNARY_NOT [X] [X] [X] [X] [X] [X] [X] [X] -UNARY_CONVERT [X] [X] [X] [X] [X] [X] [X] [X] -<14> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -UNARY_INVERT [X] [X] [X] [X] [X] [X] [X] [X] -<16> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<17> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -LIST_APPEND [ ] [ ] [ ] [ ] [X] [X] [X] [ ] -BINARY_POWER [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_MODULO [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_ADD [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_FLOOR_DIVIDE [ ] [ ] [X] [X] [X] [X] [X] [X] -BINARY_TRUE_DIVIDE [ ] [ ] [X] [X] [X] [X] [X] [X] -INPLACE_FLOOR_DIVIDE [ ] [ ] [X] [X] [X] [X] [X] [X] -INPLACE_TRUE_DIVIDE [ ] [ ] [X] [X] [X] [X] [X] [X] -SLICE+0 [X] [X] [X] [X] [X] [X] [X] [X] -SLICE+1 [X] [X] [X] [X] [X] [X] [X] [X] -SLICE+2 [X] [X] [X] [X] [X] [X] [X] [X] -SLICE+3 [X] [X] [X] [X] [X] [X] [X] [X] -<34> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<35> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<36> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<37> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<38> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<39> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -STORE_SLICE+0 [X] [X] [X] [X] [X] [X] [X] [X] -STORE_SLICE+1 [X] [X] [X] [X] [X] [X] [X] [X] -STORE_SLICE+2 [X] [X] [X] [X] [X] [X] [X] [X] -STORE_SLICE+3 [X] [X] [X] [X] [X] [X] [X] [X] -<44> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<45> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<46> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<47> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<48> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<49> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -DELETE_SLICE+0 [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_SLICE+1 [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_SLICE+2 [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_SLICE+3 [X] [X] [X] [X] [X] [X] [X] [X] -STORE_MAP [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] -INPLACE_ADD [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_MODULO [X] [X] [X] [X] [X] [X] [X] [X] -STORE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_AND [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_XOR [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_OR [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_POWER [X] [X] [X] [X] [X] [X] [X] [X] -GET_ITER [ ] [ ] [X] [X] [X] [X] [X] [X] -<69> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -PRINT_EXPR [X] [X] [X] [X] [X] [X] [X] [X] -PRINT_ITEM [X] [X] [X] [X] [X] [X] [X] [X] -PRINT_NEWLINE [X] [X] [X] [X] [X] [X] [X] [X] -PRINT_ITEM_TO [X] [X] [X] [X] [X] [X] [X] [X] -PRINT_NEWLINE_TO [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_AND [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_XOR [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_OR [X] [X] [X] [X] [X] [X] [X] [X] -BREAK_LOOP [X] [X] [X] [X] [X] [X] [X] [X] -WITH_CLEANUP [ ] [ ] [ ] [ ] [ ] [X] [X] [X] -LOAD_LOCALS [X] [X] [X] [X] [X] [X] [X] [X] -RETURN_VALUE [X] [X] [X] [X] [X] [X] [X] [X] -IMPORT_STAR [X] [X] [X] [X] [X] [X] [X] [X] -EXEC_STMT [X] [X] [X] [X] [X] [X] [X] [X] -YIELD_VALUE [ ] [ ] [X] [X] [X] [X] [X] [X] -POP_BLOCK [X] [X] [X] [X] [X] [X] [X] [X] -END_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_CLASS [X] [X] [X] [X] [X] [X] [X] [X] -STORE_NAME [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_NAME [X] [X] [X] [X] [X] [X] [X] [X] -UNPACK_SEQUENCE [X] [X] [X] [X] [X] [X] [X] [X] -FOR_ITER [ ] [ ] [X] [X] [X] [X] [X] [X] -LIST_APPEND [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -STORE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] -STORE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] -DUP_TOPX [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_CONST [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_NAME [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_TUPLE [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_LIST [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_SET ! [X] -BUILD_MAP ! [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_ATTR ! [X] [X] [X] [X] [X] [X] [X] [X] -COMPARE_OP ! [X] [X] [X] [X] [X] [X] [X] [X] -IMPORT_NAME ! [X] [X] [X] [X] [X] [X] [X] [X] -IMPORT_FROM ! [X] [X] [X] [X] [X] [X] [X] [X] -<109> ! [ ] [ ] [ ] [ ] [ ] [ ] [ ] -JUMP_FORWARD [X] [X] [X] [X] [X] [X] [X] [X] -JUMP_IF_FALSE (_OR_POP) [X] [X] [X] [X] [X] [X] [X] [+] -JUMP_IF_TRUE (_OR_POP) [X] [X] [X] [X] [X] [X] [X] [+] -JUMP_ABSOLUTE [X] [X] [X] [X] [X] [X] [X] [X] -FOR_LOOP ! [X] [X] [X] [ ] [ ] [ ] [ ] -<115> ! [ ] [ ] [ ] [ ] [ ] [ ] [ ] -POP_JUMP_IF_FALSE ! [X] -POP_JUMP_IF_TRUE ! [X] -LOAD_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] -<117> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<118> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -CONTINUE_LOOP [ ] [X] [X] [X] [X] [X] [X] [X] -SETUP_LOOP [X] [X] [X] [X] [X] [X] [X] [X] -SETUP_EXCEPT [X] [X] [X] [X] [X] [X] [X] [X] -SETUP_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] -<123> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -LOAD_FAST [X] [X] [X] [X] [X] [X] [X] [X] -STORE_FAST [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_FAST [X] [X] [X] [X] [X] [X] [X] [X] -SET_LINENO [X] [X] [X] [ ] [ ] [ ] [ ] [ ] -<128> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<129> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -RAISE_VARARGS [X] [X] [X] [X] [X] [X] [X] [X] -CALL_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] -MAKE_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_SLICE [X] [X] [X] [X] [X] [X] [X] [X] -MAKE_CLOSURE [ ] [X] [X] [X] [X] [X] [X] [X] -LOAD_CLOSURE [ ] [X] [X] [X] [X] [X] [X] [X] -LOAD_DEREF [ ] [X] [X] [X] [X] [X] [X] [X] -STORE_DEREF [ ] [X] [X] [X] [X] [X] [X] [X] -<138> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<139> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -CALL_FUNCTION_VAR [X] [X] [X] [X] [X] [X] [X] [X] -CALL_FUNCTION_KW [X] [X] [X] [X] [X] [X] [X] [X] -CALL_FUNCTION_VAR_KW [X] [X] [X] [X] [X] [X] [X] [X] -EXTENDED_ARG ! [X] [X] [X] [X] [X] [X] [X] -SETUP_WITH ! [X] -<144> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<145> ! [ ] [ ] [ ] [ ] [ ] [ ] [ ] -EXTENDED_ARG ! [X] -SET_ADD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -MAP_ADD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -<148> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<149> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<150> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<151> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<152> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<153> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<154> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<155> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<156> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<157> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<158> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<159> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] - . - . - . - - - 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 -STOP_CODE [X] [X] [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -POP_TOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -ROT_TWO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -ROT_THREE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DUP_TOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -ROT_FOUR ! [X] [X] -DUP_TOP_TWO ! [X] [X] [X] [X] [X] [X] [X] [X] [X] -ROT_FOUR [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] -<7> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<8> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -NOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -UNARY_POSITIVE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -UNARY_NEGATIVE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -UNARY_NOT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -<13> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<14> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -UNARY_INVERT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_MATRIX_MULTIPLY [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] -SET_ADD ! [X] [ ] [ ] [ ] [ ] -INPLACE_MATRIX_MULTIPLY ! [X] [X] [X] [X] [X] [X] -LIST_APPEND [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -BINARY_POWER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -<21> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -BINARY_MODULO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_ADD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_FLOOR_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_TRUE_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_FLOOR_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_TRUE_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -GET_LEN [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -MATCH_MAPPING [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -MATCH_SEQUENCE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -MATCH_KEYS [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -COPY_DICT_WITHOUT_KEYS [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -<35> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<36> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<37> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<38> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<39> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<40> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<41> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<42> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<43> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<44> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<45> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<46> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -<47> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -RERAISE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ] -WITH_EXCEPT_START [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] -GET_AITER [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] -GET_ANEXT [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] -BEFORE_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] -BEGIN_FINALLY [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ] [ ] -STORE_MAP ! [X] [X] [X] [X] [X] [ ] [ ] [ ] -END_ASYNC_FOR ! [X] [X] [X] -INPLACE_ADD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -<58> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -INPLACE_MODULO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_AND [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_XOR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BINARY_OR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_POWER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -GET_ITER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_LOCALS ! [X] [X] [X] [X] [ ] -GET_YIELD_FROM_ITER ! [X] [X] [X] [X] [X] [X] -PRINT_EXPR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_BUILD_CLASS [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -YIELD_FROM [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] [X] [X] -GET_AWAITABLE [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] -LOAD_ASSERTION_ERROR [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] -INPLACE_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_AND [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_XOR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -INPLACE_OR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BREAK_LOOP [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] -WITH_CLEANUP ! [X] [X] [X] [X] [X] -WITH_CLEANUP_START ! [X] [X] [X] [X] [ ] [ ] -WITH_CLEANUP_FINISH ! [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] -LIST_TO_TUPLE ! [X] [X] -RETURN_VALUE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -IMPORT_STAR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -SETUP_ANNOTATIONS [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] -YIELD_VALUE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -POP_BLOCK [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -END_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ] -POP_EXCEPT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -UNPACK_SEQUENCE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -FOR_ITER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -UNPACK_EX [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DUP_TOPX ! [X] [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -ROT_N ! [X] -LOAD_CONST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_TUPLE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_LIST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_SET [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_MAP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -COMPARE_OP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -IMPORT_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -IMPORT_FROM [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -JUMP_FORWARD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -JUMP_IF_FALSE (_OR_POP) [X] [X] [+] [+] [+] [+] [+] [+] [+] [+] [+] -JUMP_IF_TRUE (_OR_POP) [X] [X] [+] [+] [+] [+] [+] [+] [+] [+] [+] -JUMP_ABSOLUTE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -POP_JUMP_IF_FALSE [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -POP_JUMP_IF_TRUE [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -IS_OP [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] -CONTAINS_OP [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] -CONTINUE_LOOP ! [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ] -RERAISE ! [X] -SETUP_LOOP [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] -SETUP_EXCEPT ! [X] [X] [X] [X] [X] [X] [X] [X] [ ] -JUMP_IF_NOT_EXC_MATCH ! [X] [X] -SETUP_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -<123> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -LOAD_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_ANNOTATION [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ] [ ] [ ] [ ] -<128> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -GEN_START [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -RAISE_VARARGS [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -CALL_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -MAKE_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -BUILD_SLICE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -MAKE_CLOSURE [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] [ ] [ ] -LOAD_CLOSURE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_DEREF [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -STORE_DEREF [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -DELETE_DEREF [ ] [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] -<139> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -CALL_FUNCTION_VAR [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] [ ] [ ] -CALL_FUNCTION_KW [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -CALL_FUNCTION_VAR_KW ! [X] [X] [X] [X] [X] [X] -CALL_FUNCTION_EX ! [X] [X] [X] [X] [X] -EXTENDED_ARG ! [X] [X] -SETUP_WITH ! [X] [X] [X] [X] [X] [X] [X] [X] [X] -<144> ! [ ] [ ] -EXTENDED_ARG ! [X] [X] [X] [X] [X] [X] [X] [X] [X] -LIST_APPEND [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -SET_ADD [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -MAP_ADD [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] -LOAD_CLASSDEREF [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] [X] -BUILD_LIST_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ] -BUILD_MAP_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ] -BUILD_MAP_UNPACK_WITH_CALL [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ] -BUILD_TUPLE_UNPACK ! [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] -MATCH_CLASS ! [X] -BUILD_SET_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ] -SETUP_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] -FORMAT_VALUE [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] -BUILD_CONST_KEY_MAP [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] -BUILD_STRING [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] -BUILD_TUPLE_UNPACK_WITH_CALL[ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [ ] [ ] -<159> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] -LOAD_METHOD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] -CALL_METHOD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] -CALL_FINALLY ! [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -LIST_EXTEND ! [X] [X] -POP_FINALLY ! [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] -SET_UPDATE ! [X] [X] -DICT_MERGE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] -DICT_UPDATE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] -<166> -<167> -<168> -<169> - . - . - . - - - 3.11 -CACHE [X] -POP_TOP [X] -PUSH_NULL [X] -<3> [ ] -<4> [ ] -<5> [ ] -<6> [ ] -<7> [ ] -<8> [ ] -NOP [X] -UNARY_POSITIVE [X] -UNARY_NEGATIVE [X] -UNARY_NOT [X] -<13> [ ] -<14> [ ] -UNARY_INVERT [X] -<16> [ ] -<17> [ ] -<18> [ ] -<19> [ ] -<20> [ ] -<21> [ ] -<22> [ ] -<23> [ ] -<24> [ ] -BINARY_SUBSCR [X] -<26> [ ] -<27> [ ] -<28> [ ] -<29> [ ] -GET_LEN [X] -MATCH_MAPPING [X] -MATCH_SEQUENCE [X] -MATCH_KEYS [X] -<34> [ ] -PUSH_EXC_INFO [X] -CHECK_EXC_MATCH [X] -CHECK_EG_MATCH [X] -<38> [ ] -<39> [ ] -<40> [ ] -<41> [ ] -<42> [ ] -<43> [ ] -<44> [ ] -<45> [ ] -<46> [ ] -<47> [ ] -<48> [ ] -WITH_EXCEPT_START [X] -GET_AITER [X] -GET_ANEXT [X] -BEFORE_ASYNC_WITH [X] -BEFORE_WITH [X] -END_ASYNC_FOR [X] -<55> [ ] -<56> [ ] -<57> [ ] -<58> [ ] -<59> [ ] -STORE_SUBSCR [X] -DELETE_SUBSCR [X] -<62> [ ] -<63> [ ] -<64> [ ] -<65> [ ] -<66> [ ] -<67> [ ] -GET_ITER [X] -GET_YIELD_FROM_ITER [X] -PRINT_EXPR [X] -LOAD_BUILD_CLASS [X] -<72> [ ] -<73> [ ] -LOAD_ASSERTION_ERROR [X] -RETURN_GENERATOR [X] -<76> [ ] -<77> [ ] -<78> [ ] -<79> [ ] -<80> [ ] -<81> [ ] -LIST_TO_TUPLE [X] -RETURN_VALUE [X] -IMPORT_STAR [X] -SETUP_ANNOTATIONS [X] -YIELD_VALUE [X] -ASYNC_GEN_WRAP [X] -PREP_RERAISE_STAR [X] -POP_EXCEPT [X] -STORE_NAME [X] -DELETE_NAME [X] -UNPACK_SEQUENCE [X] -FOR_ITER [X] -UNPACK_EX [X] -STORE_ATTR [X] -DELETE_ATTR [X] -STORE_GLOBAL [X] -DELETE_GLOBAL [X] -SWAP [X] -LOAD_CONST [X] -LOAD_NAME [X] -BUILD_TUPLE [X] -BUILD_LIST [X] -BUILD_SET [X] -BUILD_MAP [X] -LOAD_ATTR [X] -COMPARE_OP [X] -IMPORT_NAME [X] -IMPORT_FROM [X] -JUMP_FORWARD [X] -JUMP_IF_FALSE_OR_POP [X] -JUMP_IF_TRUE_OR_POP [X] -<113> [ ] -POP_JUMP_FORWARD_IF_FALSE [X] -POP_JUMP_FORWARD_IF_TRUE [X] -LOAD_GLOBAL [X] -IS_OP [X] -CONTAINS_OP [X] -RERAISE [X] -COPY [X] -<121> [ ] -BINARY_OP [X] -SEND [X] -LOAD_FAST [X] -STORE_FAST [X] -DELETE_FAST [X] -<127> [ ] -POP_JUMP_FORWARD_IF_NOT_NONE [X] -POP_JUMP_FORWARD_IF_NONE [X] -RAISE_VARARGS [X] -GET_AWAITABLE [X] -MAKE_FUNCTION [X] -BUILD_SLICE [X] -JUMP_BACKWARD_NO_INTERRUPT [X] -MAKE_CELL [X] -LOAD_CLOSURE [X] -LOAD_DEREF [X] -STORE_DEREF [X] -DELETE_DEREF [X] -JUMP_BACKWARD [X] -<141> [ ] -CALL_FUNCTION_EX [X] -<143> [ ] -EXTENDED_ARG [X] -LIST_APPEND [X] -SET_ADD [X] -MAP_ADD [X] -LOAD_CLASSDEREF [X] -COPY_FREE_VARS [X] -<150> [ ] -RESUME [X] -MATCH_CLASS [X] -<153> [ ] -<154> [ ] -FORMAT_VALUE [X] -BUILD_CONST_KEY_MAP [X] -BUILD_STRING [X] -<158> [ ] -<159> [ ] -LOAD_METHOD [X] -<161> [ ] -LIST_EXTEND [X] -SET_UPDATE [X] -DICT_MERGE [X] -DICT_UPDATE [X] -PRECALL [X] -<167> [ ] -<168> [ ] -<169> [ ] -<170> [ ] -CALL [X] -KW_NAMES [X] -POP_JUMP_BACKWARD_IF_NOT_NONE [X] -POP_JUMP_BACKWARD_IF_NONE [X] -POP_JUMP_BACKWARD_IF_FALSE [X] -POP_JUMP_BACKWARD_IF_TRUE [X] -<177> -<178> -<179> - . - . - . - - - 1.0 1.3 1.4 1.5 1.6 -TYPE_NULL '0' '0' '0' '0' '0' -TYPE_NONE 'N' 'N' 'N' 'N' 'N' -TYPE_ELLIPSIS '.' '.' '.' -TYPE_INT 'i' 'i' 'i' 'i' 'i' -TYPE_INT64 'I' 'I' -TYPE_FLOAT 'f' 'f' 'f' 'f' 'f' -TYPE_COMPLEX 'x' 'x' 'x' -TYPE_LONG 'l' 'l' 'l' 'l' 'l' -TYPE_STRING 's' 's' 's' 's' 's' -TYPE_TUPLE '(' '(' '(' '(' '(' -TYPE_LIST '[' '[' '[' '[' '[' -TYPE_DICT '{' '{' '{' '{' '{' -TYPE_CODE 'C' 'c' 'c' 'c' 'c' -TYPE_UNICODE 'u' -TYPE_UNKNOWN '?' '?' '?' '?' '?' - - - 2.0 2.2 2.3 2.4 2.5 -TYPE_NULL '0' '0' '0' '0' '0' -TYPE_NONE 'N' 'N' 'N' 'N' 'N' -TYPE_FALSE 'F' 'F' 'F' -TYPE_TRUE 'T' 'T' 'T' -TYPE_STOPITER 'S' 'S' 'S' 'S' -TYPE_ELLIPSIS '.' '.' '.' '.' '.' -TYPE_INT 'i' 'i' 'i' 'i' 'i' -TYPE_INT64 'I' 'I' 'I' 'I' 'I' -TYPE_FLOAT 'f' 'f' 'f' 'f' 'f' -TYPE_BINARY_FLOAT 'g' -TYPE_COMPLEX 'x' 'x' 'x' 'x' 'x' -TYPE_BINARY_COMPLEX 'y' -TYPE_LONG 'l' 'l' 'l' 'l' 'l' -TYPE_STRING 's' 's' 's' 's' 's' -TYPE_INTERNED 't' 't' -TYPE_STRINGREF 'R' 'R' -TYPE_TUPLE '(' '(' '(' '(' '(' -TYPE_LIST '[' '[' '[' '[' '[' -TYPE_DICT '{' '{' '{' '{' '{' -TYPE_CODE 'c' 'c' 'c' 'c' 'c' -TYPE_UNICODE 'u' 'u' 'u' 'u' 'u' -TYPE_UNKNOWN '?' '?' '?' '?' '?' -TYPE_SET '<' -TYPE_FROZENSET '>' - - - 3.0 3.4 -TYPE_NULL '0' '0' -TYPE_NONE 'N' 'N' -TYPE_FALSE 'F' 'F' -TYPE_TRUE 'T' 'T' -TYPE_STOPITER 'S' 'S' -TYPE_ELLIPSIS '.' '.' -TYPE_INT 'i' 'i' -TYPE_INT64 'I' -TYPE_FLOAT 'f' 'f' -TYPE_BINARY_FLOAT 'g' 'g' -TYPE_COMPLEX 'x' 'x' -TYPE_BINARY_COMPLEX 'y' 'y' -TYPE_LONG 'l' 'l' -TYPE_STRING 's' 's' -TYPE_INTERNED 't' -TYPE_REF 'r' -TYPE_TUPLE '(' '(' -TYPE_LIST '[' '[' -TYPE_DICT '{' '{' -TYPE_CODE 'c' 'c' -TYPE_UNICODE 'u' 'u' -TYPE_UNKNOWN '?' '?' -TYPE_SET '<' '<' -TYPE_FROZENSET '>' '>' -TYPE_ASCII 'a' -TYPE_ASCII_INTERNED 'A' -TYPE_SMALL_TUPLE ')' -TYPE_SHORT_ASCII 'z' -TYPE_SHORT_ASCII_INTERNED 'Z' - - -[TYPE_CODE] 1.0 1.3 1.5 2.1 2.3 3.0 3.8 3.11 -argcount short short short long long long long -posonlyargc long long -kwonlyargc long long long -nlocals short short short long long long -stacksize short short long long long long -flags short short short long long long long -code Obj Obj Obj Obj Obj Obj Obj Obj -consts Obj Obj Obj Obj Obj Obj Obj Obj -names Obj Obj Obj Obj Obj Obj Obj Obj -varnames Obj Obj Obj Obj Obj Obj -freevars Obj Obj Obj Obj -cellvars Obj Obj Obj Obj -locals+names Obj -locals+kinds Obj -filename Obj Obj Obj Obj Obj Obj Obj Obj -name Obj Obj Obj Obj Obj Obj Obj Obj -qualname Obj -firstline short short long long long long -lntable Obj Obj Obj Obj Obj Obj -exceptiontable Obj diff --git a/bytecode.cpp b/bytecode.cpp index 6036d0b1f..33c1abcbf 100644 --- a/bytecode.cpp +++ b/bytecode.cpp @@ -9,8 +9,7 @@ #endif #define DECLARE_PYTHON(maj, min) \ - extern int python_##maj##min##_map(int); \ - extern int python_##maj##min##_unmap(int); + extern int python_##maj##_##min##_map(int); DECLARE_PYTHON(1, 0) DECLARE_PYTHON(1, 1) @@ -38,6 +37,7 @@ DECLARE_PYTHON(3, 8) DECLARE_PYTHON(3, 9) DECLARE_PYTHON(3, 10) DECLARE_PYTHON(3, 11) +DECLARE_PYTHON(3, 12) const char* Pyc::OpcodeName(int opcode) { @@ -72,95 +72,47 @@ int Pyc::ByteToOpcode(int maj, int min, int opcode) switch (maj) { case 1: switch (min) { - case 0: return python_10_map(opcode); - case 1: return python_11_map(opcode); - case 3: return python_13_map(opcode); - case 4: return python_14_map(opcode); - case 5: return python_15_map(opcode); - case 6: return python_16_map(opcode); + case 0: return python_1_0_map(opcode); + case 1: return python_1_1_map(opcode); + case 3: return python_1_3_map(opcode); + case 4: return python_1_4_map(opcode); + case 5: return python_1_5_map(opcode); + case 6: return python_1_6_map(opcode); } break; case 2: switch (min) { - case 0: return python_20_map(opcode); - case 1: return python_21_map(opcode); - case 2: return python_22_map(opcode); - case 3: return python_23_map(opcode); - case 4: return python_24_map(opcode); - case 5: return python_25_map(opcode); - case 6: return python_26_map(opcode); - case 7: return python_27_map(opcode); + case 0: return python_2_0_map(opcode); + case 1: return python_2_1_map(opcode); + case 2: return python_2_2_map(opcode); + case 3: return python_2_3_map(opcode); + case 4: return python_2_4_map(opcode); + case 5: return python_2_5_map(opcode); + case 6: return python_2_6_map(opcode); + case 7: return python_2_7_map(opcode); } break; case 3: switch (min) { - case 0: return python_30_map(opcode); - case 1: return python_31_map(opcode); - case 2: return python_32_map(opcode); - case 3: return python_33_map(opcode); - case 4: return python_34_map(opcode); - case 5: return python_35_map(opcode); - case 6: return python_36_map(opcode); - case 7: return python_37_map(opcode); - case 8: return python_38_map(opcode); - case 9: return python_39_map(opcode); - case 10: return python_310_map(opcode); - case 11: return python_311_map(opcode); + case 0: return python_3_0_map(opcode); + case 1: return python_3_1_map(opcode); + case 2: return python_3_2_map(opcode); + case 3: return python_3_3_map(opcode); + case 4: return python_3_4_map(opcode); + case 5: return python_3_5_map(opcode); + case 6: return python_3_6_map(opcode); + case 7: return python_3_7_map(opcode); + case 8: return python_3_8_map(opcode); + case 9: return python_3_9_map(opcode); + case 10: return python_3_10_map(opcode); + case 11: return python_3_11_map(opcode); + case 12: return python_3_12_map(opcode); } break; } return PYC_INVALID_OPCODE; } -bool Pyc::IsConstArg(int opcode) -{ - return (opcode == Pyc::LOAD_CONST_A) || (opcode == Pyc::RESERVE_FAST_A); -} - -bool Pyc::IsNameArg(int opcode) -{ - return (opcode == Pyc::DELETE_ATTR_A) || (opcode == Pyc::DELETE_GLOBAL_A) || - (opcode == Pyc::DELETE_NAME_A) || (opcode == Pyc::IMPORT_FROM_A) || - (opcode == Pyc::IMPORT_NAME_A) || (opcode == Pyc::LOAD_ATTR_A) || - (opcode == Pyc::LOAD_GLOBAL_A) || (opcode == Pyc::LOAD_LOCAL_A) || - (opcode == Pyc::LOAD_NAME_A) || (opcode == Pyc::STORE_ATTR_A) || - (opcode == Pyc::STORE_GLOBAL_A) || (opcode == Pyc::STORE_NAME_A) || - (opcode == Pyc::LOAD_METHOD_A); -} - -bool Pyc::IsVarNameArg(int opcode) -{ - return (opcode == Pyc::DELETE_FAST_A) || (opcode == Pyc::LOAD_FAST_A) || - (opcode == Pyc::STORE_FAST_A); -} - -bool Pyc::IsCellArg(int opcode) -{ - return (opcode == Pyc::LOAD_CLOSURE_A) || (opcode == Pyc::LOAD_DEREF_A) || - (opcode == Pyc::STORE_DEREF_A); -} - -bool Pyc::IsJumpArg(int opcode) -{ - return (opcode == Pyc::POP_JUMP_IF_FALSE_A) || (opcode == Pyc::POP_JUMP_IF_TRUE_A) || - (opcode == Pyc::JUMP_IF_FALSE_OR_POP_A) || (opcode == JUMP_IF_TRUE_OR_POP_A) || - (opcode == Pyc::JUMP_ABSOLUTE_A) || (opcode == Pyc::JUMP_IF_NOT_EXC_MATCH_A); -} - -bool Pyc::IsJumpOffsetArg(int opcode) -{ - return (opcode == Pyc::JUMP_FORWARD_A) || (opcode == Pyc::JUMP_IF_FALSE_A) || - (opcode == Pyc::JUMP_IF_TRUE_A) || (opcode == Pyc::SETUP_LOOP_A) || - (opcode == Pyc::SETUP_FINALLY_A) || (opcode == Pyc::SETUP_EXCEPT_A) || - (opcode == Pyc::FOR_LOOP_A) || (opcode == Pyc::FOR_ITER_A) || - (opcode == Pyc::POP_JUMP_FORWARD_IF_FALSE_A) || (opcode == Pyc::POP_JUMP_FORWARD_IF_TRUE_A); -} - -bool Pyc::IsCompareArg(int opcode) -{ - return (opcode == Pyc::COMPARE_OP_A); -} - void print_const(std::ostream& pyc_output, PycRef obj, PycModule* mod, const char* parent_f_string_quote) { @@ -216,20 +168,17 @@ void print_const(std::ostream& pyc_output, PycRef obj, PycModule* mod case PycObject::TYPE_DICT: { pyc_output << "{"; - PycDict::key_t keys = obj.cast()->keys(); PycDict::value_t values = obj.cast()->values(); - auto ki = keys.cbegin(); - auto vi = values.cbegin(); - if (ki != keys.cend()) { - print_const(pyc_output, *ki, mod); + auto it = values.cbegin(); + if (it != values.cend()) { + print_const(pyc_output, std::get<0>(*it), mod); pyc_output << ": "; - print_const(pyc_output, *vi, mod); - while (++ki != keys.cend()) { - ++vi; + print_const(pyc_output, std::get<1>(*it), mod); + while (++it != values.cend()) { pyc_output << ", "; - print_const(pyc_output, *ki, mod); + print_const(pyc_output, std::get<0>(*it), mod); pyc_output << ": "; - print_const(pyc_output, *vi, mod); + print_const(pyc_output, std::get<1>(*it), mod); } } pyc_output << "}"; @@ -328,30 +277,26 @@ void print_const(std::ostream& pyc_output, PycRef obj, PycModule* mod void bc_next(PycBuffer& source, PycModule* mod, int& opcode, int& operand, int& pos) { opcode = Pyc::ByteToOpcode(mod->majorVer(), mod->minorVer(), source.getByte()); - bool py36_opcode = (mod->verCompare(3, 6) >= 0); - if (py36_opcode) { + if (mod->verCompare(3, 6) >= 0) { operand = source.getByte(); pos += 2; + if (opcode == Pyc::EXTENDED_ARG_A) { + opcode = Pyc::ByteToOpcode(mod->majorVer(), mod->minorVer(), source.getByte()); + operand = (operand << 8) | source.getByte(); + pos += 2; + } } else { operand = 0; pos += 1; - } - - if (opcode == Pyc::EXTENDED_ARG_A) { - if (py36_opcode) { - opcode = Pyc::ByteToOpcode(mod->majorVer(), mod->minorVer(), source.getByte()); - operand <<= 8; - operand |= source.getByte(); - pos += 2; - } else { + if (opcode == Pyc::EXTENDED_ARG_A) { operand = source.get16() << 16; opcode = Pyc::ByteToOpcode(mod->majorVer(), mod->minorVer(), source.getByte()); pos += 3; } - } - if (!py36_opcode && (opcode >= Pyc::PYC_HAVE_ARG)) { - operand |= source.get16(); - pos += 2; + if (opcode >= Pyc::PYC_HAVE_ARG) { + operand |= source.get16(); + pos += 2; + } } } @@ -370,6 +315,22 @@ void bc_disasm(std::ostream& pyc_output, PycRef code, PycModule* mod, }; static const size_t binop_strings_len = sizeof(binop_strings) / sizeof(binop_strings[0]); + static const char *intrinsic1_names[] = { + "INTRINSIC_1_INVALID", "INTRINSIC_PRINT", "INTRINSIC_IMPORT_STAR", + "INTRINSIC_STOPITERATION_ERROR", "INTRINSIC_ASYNC_GEN_WRAP", + "INTRINSIC_UNARY_POSITIVE", "INTRINSIC_LIST_TO_TUPLE", "INTRINSIC_TYPEVAR", + "INTRINSIC_PARAMSPEC", "INTRINSIC_TYPEVARTUPLE", + "INTRINSIC_SUBSCRIPT_GENERIC", "INTRINSIC_TYPEALIAS", + }; + static const size_t intrinsic1_names_len = sizeof(intrinsic1_names) / sizeof(intrinsic1_names[0]); + + static const char *intrinsic2_names[] = { + "INTRINSIC_2_INVALID", "INTRINSIC_PREP_RERAISE_STAR", + "INTRINSIC_TYPEVAR_WITH_BOUND", "INTRINSIC_TYPEVAR_WITH_CONSTRAINTS", + "INTRINSIC_SET_FUNCTION_TYPE_PARAMS", + }; + static const size_t intrinsic2_names_len = sizeof(intrinsic2_names) / sizeof(intrinsic2_names[0]); + PycBuffer source(code->code()->value(), code->code()->length()); int opcode, operand; @@ -382,10 +343,15 @@ void bc_disasm(std::ostream& pyc_output, PycRef code, PycModule* mod, for (int i=0; i= Pyc::PYC_HAVE_ARG) { - if (Pyc::IsConstArg(opcode)) { + switch (opcode) { + case Pyc::LOAD_CONST_A: + case Pyc::RESERVE_FAST_A: + case Pyc::KW_NAMES_A: + case Pyc::RETURN_CONST_A: + case Pyc::INSTRUMENTED_RETURN_CONST_A: try { auto constParam = code->getConst(operand); formatted_print(pyc_output, "%d: ", operand); @@ -393,7 +359,8 @@ void bc_disasm(std::ostream& pyc_output, PycRef code, PycModule* mod, } catch (const std::out_of_range &) { formatted_print(pyc_output, "%d ", operand); } - } else if (opcode == Pyc::LOAD_GLOBAL_A) { + break; + case Pyc::LOAD_GLOBAL_A: try { // Special case for Python 3.11+ if (mod->verCompare(3, 11) >= 0) { @@ -407,54 +374,162 @@ void bc_disasm(std::ostream& pyc_output, PycRef code, PycModule* mod, } catch (const std::out_of_range &) { formatted_print(pyc_output, "%d ", operand); } - } else if (Pyc::IsNameArg(opcode)) { + break; + case Pyc::DELETE_ATTR_A: + case Pyc::DELETE_GLOBAL_A: + case Pyc::DELETE_NAME_A: + case Pyc::IMPORT_FROM_A: + case Pyc::IMPORT_NAME_A: + case Pyc::LOAD_ATTR_A: + case Pyc::LOAD_LOCAL_A: + case Pyc::LOAD_NAME_A: + case Pyc::STORE_ATTR_A: + case Pyc::STORE_GLOBAL_A: + case Pyc::STORE_NAME_A: + case Pyc::STORE_ANNOTATION_A: + case Pyc::LOAD_METHOD_A: + case Pyc::LOAD_FROM_DICT_OR_GLOBALS_A: try { formatted_print(pyc_output, "%d: %s", operand, code->getName(operand)->value()); } catch (const std::out_of_range &) { formatted_print(pyc_output, "%d ", operand); } - } else if (Pyc::IsVarNameArg(opcode)) { + break; + case Pyc::LOAD_SUPER_ATTR_A: + case Pyc::INSTRUMENTED_LOAD_SUPER_ATTR_A: + try { + formatted_print(pyc_output, "%d: %s", operand, code->getName(operand >> 2)->value()); + } catch (const std::out_of_range &) { + formatted_print(pyc_output, "%d ", operand); + } + break; + case Pyc::DELETE_FAST_A: + case Pyc::LOAD_FAST_A: + case Pyc::STORE_FAST_A: + case Pyc::LOAD_FAST_CHECK_A: + case Pyc::LOAD_FAST_AND_CLEAR_A: try { formatted_print(pyc_output, "%d: %s", operand, code->getLocal(operand)->value()); } catch (const std::out_of_range &) { formatted_print(pyc_output, "%d ", operand); } - } else if (Pyc::IsCellArg(opcode)) { + break; + case Pyc::LOAD_CLOSURE_A: + case Pyc::LOAD_DEREF_A: + case Pyc::STORE_DEREF_A: + case Pyc::DELETE_DEREF_A: + case Pyc::MAKE_CELL_A: + case Pyc::CALL_FINALLY_A: + case Pyc::LOAD_FROM_DICT_OR_DEREF_A: try { formatted_print(pyc_output, "%d: %s", operand, code->getCellVar(mod, operand)->value()); } catch (const std::out_of_range &) { formatted_print(pyc_output, "%d ", operand); } - } else if (Pyc::IsJumpOffsetArg(opcode)) { - int offs = operand; - if (mod->verCompare(3, 10) >= 0) - offs *= sizeof(uint16_t); // BPO-27129 - formatted_print(pyc_output, "%d (to %d)", operand, pos+offs); - } else if (Pyc::IsJumpArg(opcode)) { - if (mod->verCompare(3, 10) >= 0) // BPO-27129 - formatted_print(pyc_output, "%d (to %d)", operand, int(operand * sizeof(uint16_t))); - else + break; + case Pyc::JUMP_FORWARD_A: + case Pyc::JUMP_IF_FALSE_A: + case Pyc::JUMP_IF_TRUE_A: + case Pyc::SETUP_LOOP_A: + case Pyc::SETUP_FINALLY_A: + case Pyc::SETUP_EXCEPT_A: + case Pyc::FOR_LOOP_A: + case Pyc::FOR_ITER_A: + case Pyc::SETUP_WITH_A: + case Pyc::SETUP_ASYNC_WITH_A: + case Pyc::POP_JUMP_FORWARD_IF_FALSE_A: + case Pyc::POP_JUMP_FORWARD_IF_TRUE_A: + case Pyc::SEND_A: + case Pyc::POP_JUMP_FORWARD_IF_NOT_NONE_A: + case Pyc::POP_JUMP_FORWARD_IF_NONE_A: + case Pyc::POP_JUMP_IF_NOT_NONE_A: + case Pyc::POP_JUMP_IF_NONE_A: + case Pyc::INSTRUMENTED_POP_JUMP_IF_NOT_NONE_A: + case Pyc::INSTRUMENTED_POP_JUMP_IF_NONE_A: + case Pyc::INSTRUMENTED_JUMP_FORWARD_A: + case Pyc::INSTRUMENTED_FOR_ITER_A: + case Pyc::INSTRUMENTED_POP_JUMP_IF_FALSE_A: + case Pyc::INSTRUMENTED_POP_JUMP_IF_TRUE_A: + { + int offs = operand; + if (mod->verCompare(3, 10) >= 0) + offs *= sizeof(uint16_t); // BPO-27129 + formatted_print(pyc_output, "%d (to %d)", operand, pos+offs); + } + break; + case Pyc::JUMP_BACKWARD_NO_INTERRUPT_A: + case Pyc::JUMP_BACKWARD_A: + case Pyc::POP_JUMP_BACKWARD_IF_NOT_NONE_A: + case Pyc::POP_JUMP_BACKWARD_IF_NONE_A: + case Pyc::POP_JUMP_BACKWARD_IF_FALSE_A: + case Pyc::POP_JUMP_BACKWARD_IF_TRUE_A: + case Pyc::INSTRUMENTED_JUMP_BACKWARD_A: + { + // BACKWARD jumps were only introduced in Python 3.11 + int offs = operand * sizeof(uint16_t); // BPO-27129 + formatted_print(pyc_output, "%d (to %d)", operand, pos-offs); + } + break; + case Pyc::POP_JUMP_IF_FALSE_A: + case Pyc::POP_JUMP_IF_TRUE_A: + case Pyc::JUMP_IF_FALSE_OR_POP_A: + case Pyc::JUMP_IF_TRUE_OR_POP_A: + case Pyc::JUMP_ABSOLUTE_A: + case Pyc::JUMP_IF_NOT_EXC_MATCH_A: + if (mod->verCompare(3, 12) >= 0) { + // These are now relative as well + int offs = operand * sizeof(uint16_t); + formatted_print(pyc_output, "%d (to %d)", operand, pos+offs); + } else if (mod->verCompare(3, 10) >= 0) { + // BPO-27129 + formatted_print(pyc_output, "%d (to %d)", operand, + int(operand * sizeof(uint16_t))); + } else { formatted_print(pyc_output, "%d", operand); - } else if (Pyc::IsCompareArg(opcode)) { - if (static_cast(operand) < cmp_strings_len) - formatted_print(pyc_output, "%d (%s)", operand, cmp_strings[operand]); - else - formatted_print(pyc_output, "%d (UNKNOWN)", operand); - } else if (opcode == Pyc::BINARY_OP_A) { + } + break; + case Pyc::COMPARE_OP_A: + { + auto arg = operand; + if (mod->verCompare(3, 12) >= 0) + arg >>= 4; // changed under GH-100923 + if (static_cast(arg) < cmp_strings_len) + formatted_print(pyc_output, "%d (%s)", operand, cmp_strings[arg]); + else + formatted_print(pyc_output, "%d (UNKNOWN)", operand); + } + break; + case Pyc::BINARY_OP_A: if (static_cast(operand) < binop_strings_len) formatted_print(pyc_output, "%d (%s)", operand, binop_strings[operand]); else formatted_print(pyc_output, "%d (UNKNOWN)", operand); - } else if (opcode == Pyc::IS_OP_A) { + break; + case Pyc::IS_OP_A: formatted_print(pyc_output, "%d (%s)", operand, (operand == 0) ? "is" : (operand == 1) ? "is not" : "UNKNOWN"); - } else if (opcode == Pyc::CONTAINS_OP_A) { + break; + case Pyc::CONTAINS_OP_A: formatted_print(pyc_output, "%d (%s)", operand, (operand == 0) ? "in" : (operand == 1) ? "not in" : "UNKNOWN"); - } else { + break; + case Pyc::CALL_INTRINSIC_1_A: + if (static_cast(operand) < intrinsic1_names_len) + formatted_print(pyc_output, "%d (%s)", operand, intrinsic1_names[operand]); + else + formatted_print(pyc_output, "%d (UNKNOWN)", operand); + break; + case Pyc::CALL_INTRINSIC_2_A: + if (static_cast(operand) < intrinsic2_names_len) + formatted_print(pyc_output, "%d (%s)", operand, intrinsic2_names[operand]); + else + formatted_print(pyc_output, "%d (UNKNOWN)", operand); + break; + default: formatted_print(pyc_output, "%d", operand); + break; } } pyc_output << "\n"; diff --git a/bytecode.h b/bytecode.h index f35376afd..7e4179e8f 100644 --- a/bytecode.h +++ b/bytecode.h @@ -25,14 +25,6 @@ enum DisassemblyFlags { const char* OpcodeName(int opcode); int ByteToOpcode(int maj, int min, int opcode); -bool IsConstArg(int opcode); -bool IsNameArg(int opcode); -bool IsVarNameArg(int opcode); -bool IsCellArg(int opcode); -bool IsJumpOffsetArg(int opcode); -bool IsJumpArg(int opcode); -bool IsCompareArg(int opcode); - } void print_const(std::ostream& pyc_output, PycRef obj, PycModule* mod, diff --git a/bytecode_ops.inl b/bytecode_ops.inl index 7b681fd63..475494418 100644 --- a/bytecode_ops.inl +++ b/bytecode_ops.inl @@ -1,226 +1,274 @@ /* No parameter word */ -OPCODE(STOP_CODE) -OPCODE(POP_TOP) -OPCODE(ROT_TWO) -OPCODE(ROT_THREE) -OPCODE(DUP_TOP) -OPCODE(DUP_TOP_TWO) -OPCODE(UNARY_POSITIVE) -OPCODE(UNARY_NEGATIVE) -OPCODE(UNARY_NOT) -OPCODE(UNARY_CONVERT) -OPCODE(UNARY_CALL) -OPCODE(UNARY_INVERT) -OPCODE(BINARY_POWER) -OPCODE(BINARY_MULTIPLY) -OPCODE(BINARY_DIVIDE) -OPCODE(BINARY_MODULO) -OPCODE(BINARY_ADD) -OPCODE(BINARY_SUBTRACT) -OPCODE(BINARY_SUBSCR) -OPCODE(BINARY_CALL) -OPCODE(SLICE_0) -OPCODE(SLICE_1) -OPCODE(SLICE_2) -OPCODE(SLICE_3) -OPCODE(STORE_SLICE_0) -OPCODE(STORE_SLICE_1) -OPCODE(STORE_SLICE_2) -OPCODE(STORE_SLICE_3) -OPCODE(DELETE_SLICE_0) -OPCODE(DELETE_SLICE_1) -OPCODE(DELETE_SLICE_2) -OPCODE(DELETE_SLICE_3) -OPCODE(STORE_SUBSCR) -OPCODE(DELETE_SUBSCR) -OPCODE(BINARY_LSHIFT) -OPCODE(BINARY_RSHIFT) -OPCODE(BINARY_AND) -OPCODE(BINARY_XOR) -OPCODE(BINARY_OR) -OPCODE(PRINT_EXPR) -OPCODE(PRINT_ITEM) -OPCODE(PRINT_NEWLINE) -OPCODE(BREAK_LOOP) -OPCODE(RAISE_EXCEPTION) -OPCODE(LOAD_LOCALS) -OPCODE(RETURN_VALUE) -OPCODE(LOAD_GLOBALS) -OPCODE(EXEC_STMT) -OPCODE(BUILD_FUNCTION) -OPCODE(POP_BLOCK) -OPCODE(END_FINALLY) -OPCODE(BUILD_CLASS) -OPCODE(ROT_FOUR) -OPCODE(NOP) -OPCODE(LIST_APPEND) -OPCODE(BINARY_FLOOR_DIVIDE) -OPCODE(BINARY_TRUE_DIVIDE) -OPCODE(INPLACE_FLOOR_DIVIDE) -OPCODE(INPLACE_TRUE_DIVIDE) -OPCODE(GET_LEN) -OPCODE(MATCH_MAPPING) -OPCODE(MATCH_SEQUENCE) -OPCODE(MATCH_KEYS) -OPCODE(COPY_DICT_WITHOUT_KEYS) -OPCODE(STORE_MAP) -OPCODE(INPLACE_ADD) -OPCODE(INPLACE_SUBTRACT) -OPCODE(INPLACE_MULTIPLY) -OPCODE(INPLACE_DIVIDE) -OPCODE(INPLACE_MODULO) -OPCODE(INPLACE_POWER) -OPCODE(GET_ITER) -OPCODE(PRINT_ITEM_TO) -OPCODE(PRINT_NEWLINE_TO) -OPCODE(INPLACE_LSHIFT) -OPCODE(INPLACE_RSHIFT) -OPCODE(INPLACE_AND) -OPCODE(INPLACE_XOR) -OPCODE(INPLACE_OR) -OPCODE(WITH_CLEANUP) -OPCODE(WITH_CLEANUP_START) -OPCODE(WITH_CLEANUP_FINISH) -OPCODE(IMPORT_STAR) -OPCODE(SETUP_ANNOTATIONS) -OPCODE(YIELD_VALUE) -OPCODE(LOAD_BUILD_CLASS) -OPCODE(STORE_LOCALS) -OPCODE(POP_EXCEPT) -OPCODE(SET_ADD) -OPCODE(YIELD_FROM) -OPCODE(BINARY_MATRIX_MULTIPLY) -OPCODE(INPLACE_MATRIX_MULTIPLY) -OPCODE(GET_AITER) -OPCODE(GET_ANEXT) -OPCODE(BEFORE_ASYNC_WITH) -OPCODE(GET_YIELD_FROM_ITER) -OPCODE(GET_AWAITABLE) -OPCODE(BEGIN_FINALLY) -OPCODE(END_ASYNC_FOR) -OPCODE(RERAISE) -OPCODE(WITH_EXCEPT_START) -OPCODE(LOAD_ASSERTION_ERROR) -OPCODE(LIST_TO_TUPLE) -OPCODE(CACHE) -OPCODE(PUSH_NULL) -OPCODE(PUSH_EXC_INFO) -OPCODE(CHECK_EXC_MATCH) -OPCODE(CHECK_EG_MATCH) -OPCODE(BEFORE_WITH) -OPCODE(RETURN_GENERATOR) -OPCODE(ASYNC_GEN_WRAP) -OPCODE(PREP_RERAISE_STAR) +OPCODE(STOP_CODE) // Python 1.0 - 3.2 +OPCODE(POP_TOP) // Python 1.0 -> +OPCODE(ROT_TWO) // Python 1.0 - 3.10 +OPCODE(ROT_THREE) // Python 1.0 - 3.10 +OPCODE(DUP_TOP) // Python 1.0 - 3.10 +OPCODE(DUP_TOP_TWO) // Python 3.2 - 3.10 +OPCODE(UNARY_POSITIVE) // Python 1.0 - 3.11 +OPCODE(UNARY_NEGATIVE) // Python 1.0 -> +OPCODE(UNARY_NOT) // Python 1.0 -> +OPCODE(UNARY_CONVERT) // Python 1.0 - 2.7 +OPCODE(UNARY_CALL) // Python 1.0 - 1.2 +OPCODE(UNARY_INVERT) // Python 1.0 -> +OPCODE(BINARY_POWER) // Python 1.4 - 3.10 +OPCODE(BINARY_MULTIPLY) // Python 1.0 - 3.10 +OPCODE(BINARY_DIVIDE) // Python 1.0 - 2.7 +OPCODE(BINARY_MODULO) // Python 1.0 - 3.10 +OPCODE(BINARY_ADD) // Python 1.0 - 3.10 +OPCODE(BINARY_SUBTRACT) // Python 1.0 - 3.10 +OPCODE(BINARY_SUBSCR) // Python 1.0 -> +OPCODE(BINARY_CALL) // Python 1.0 - 1.2 +OPCODE(SLICE_0) // Python 1.0 - 2.7 +OPCODE(SLICE_1) // Python 1.0 - 2.7 +OPCODE(SLICE_2) // Python 1.0 - 2.7 +OPCODE(SLICE_3) // Python 1.0 - 2.7 +OPCODE(STORE_SLICE_0) // Python 1.0 - 2.7 +OPCODE(STORE_SLICE_1) // Python 1.0 - 2.7 +OPCODE(STORE_SLICE_2) // Python 1.0 - 2.7 +OPCODE(STORE_SLICE_3) // Python 1.0 - 2.7 +OPCODE(DELETE_SLICE_0) // Python 1.0 - 2.7 +OPCODE(DELETE_SLICE_1) // Python 1.0 - 2.7 +OPCODE(DELETE_SLICE_2) // Python 1.0 - 2.7 +OPCODE(DELETE_SLICE_3) // Python 1.0 - 2.7 +OPCODE(STORE_SUBSCR) // Python 1.0 -> +OPCODE(DELETE_SUBSCR) // Python 1.0 -> +OPCODE(BINARY_LSHIFT) // Python 1.0 - 3.10 +OPCODE(BINARY_RSHIFT) // Python 1.0 - 3.10 +OPCODE(BINARY_AND) // Python 1.0 - 3.10 +OPCODE(BINARY_XOR) // Python 1.0 - 3.10 +OPCODE(BINARY_OR) // Python 1.0 - 3.10 +OPCODE(PRINT_EXPR) // Python 1.0 - 3.11 +OPCODE(PRINT_ITEM) // Python 1.0 - 2.7 +OPCODE(PRINT_NEWLINE) // Python 1.0 - 2.7 +OPCODE(BREAK_LOOP) // Python 1.0 - 3.7 +OPCODE(RAISE_EXCEPTION) // Python 1.0 - 1.2 +OPCODE(LOAD_LOCALS) // Python 1.0 - 2.7, 3.12 -> +OPCODE(RETURN_VALUE) // Python 1.0 -> +OPCODE(LOAD_GLOBALS) // Python 1.0 - 1.2 +OPCODE(EXEC_STMT) // Python 1.0 - 2.7 +OPCODE(BUILD_FUNCTION) // Python 1.0 - 1.2 +OPCODE(POP_BLOCK) // Python 1.0 - 3.10 +OPCODE(END_FINALLY) // Python 1.0 - 3.8 +OPCODE(BUILD_CLASS) // Python 1.0 - 2.7 +OPCODE(ROT_FOUR) // Python 2.0 - 3.1, 3.8 - 3.10 +OPCODE(NOP) // Python 2.4 -> +OPCODE(LIST_APPEND) // Python 2.4 - 2.6, 3.0 +OPCODE(BINARY_FLOOR_DIVIDE) // Python 2.2 - 3.10 +OPCODE(BINARY_TRUE_DIVIDE) // Python 2.2 - 3.10 +OPCODE(INPLACE_FLOOR_DIVIDE) // Python 2.2 - 3.10 +OPCODE(INPLACE_TRUE_DIVIDE) // Python 2.2 - 3.10 +OPCODE(GET_LEN) // Python 3.10 -> +OPCODE(MATCH_MAPPING) // Python 3.10 -> +OPCODE(MATCH_SEQUENCE) // Python 3.10 -> +OPCODE(MATCH_KEYS) // Python 3.10 -> +OPCODE(COPY_DICT_WITHOUT_KEYS) // Python 3.10 +OPCODE(STORE_MAP) // Python 2.6 - 3.4 +OPCODE(INPLACE_ADD) // Python 2.0 - 3.10 +OPCODE(INPLACE_SUBTRACT) // Python 2.0 - 3.10 +OPCODE(INPLACE_MULTIPLY) // Python 2.0 - 3.10 +OPCODE(INPLACE_DIVIDE) // Python 2.0 - 2.7 +OPCODE(INPLACE_MODULO) // Python 2.0 - 3.10 +OPCODE(INPLACE_POWER) // Python 2.0 - 3.10 +OPCODE(GET_ITER) // Python 2.2 -> +OPCODE(PRINT_ITEM_TO) // Python 2.0 - 2.7 +OPCODE(PRINT_NEWLINE_TO) // Python 2.0 - 2.7 +OPCODE(INPLACE_LSHIFT) // Python 2.0 - 3.10 +OPCODE(INPLACE_RSHIFT) // Python 2.0 - 3.10 +OPCODE(INPLACE_AND) // Python 2.0 - 3.10 +OPCODE(INPLACE_XOR) // Python 2.0 - 3.10 +OPCODE(INPLACE_OR) // Python 2.0 - 3.10 +OPCODE(WITH_CLEANUP) // Python 2.5 - 3.4 +OPCODE(WITH_CLEANUP_START) // Python 3.5 - 3.8 +OPCODE(WITH_CLEANUP_FINISH) // Python 3.5 - 3.8 +OPCODE(IMPORT_STAR) // Python 2.0 - 3.11 +OPCODE(SETUP_ANNOTATIONS) // Python 3.6 -> +OPCODE(YIELD_VALUE) // Python 2.2 - 3.11 +OPCODE(LOAD_BUILD_CLASS) // Python 3.0 -> +OPCODE(STORE_LOCALS) // Python 3.0 - 3.3 +OPCODE(POP_EXCEPT) // Python 3.0 -> +OPCODE(SET_ADD) // Python 3.0 +OPCODE(YIELD_FROM) // Python 3.3 - 3.10 +OPCODE(BINARY_MATRIX_MULTIPLY) // Python 3.5 - 3.10 +OPCODE(INPLACE_MATRIX_MULTIPLY) // Python 3.5 - 3.10 +OPCODE(GET_AITER) // Python 3.5 -> +OPCODE(GET_ANEXT) // Python 3.5 -> +OPCODE(BEFORE_ASYNC_WITH) // Python 3.5 -> +OPCODE(GET_YIELD_FROM_ITER) // Python 3.5 -> +OPCODE(GET_AWAITABLE) // Python 3.5 - 3.10 +OPCODE(BEGIN_FINALLY) // Python 3.8 +OPCODE(END_ASYNC_FOR) // Python 3.8 -> +OPCODE(RERAISE) // Python 3.9 +OPCODE(WITH_EXCEPT_START) // Python 3.9 -> +OPCODE(LOAD_ASSERTION_ERROR) // Python 3.9 -> +OPCODE(LIST_TO_TUPLE) // Python 3.9 - 3.11 +OPCODE(CACHE) // Python 3.11 -> +OPCODE(PUSH_NULL) // Python 3.11 -> +OPCODE(PUSH_EXC_INFO) // Python 3.11 -> +OPCODE(CHECK_EXC_MATCH) // Python 3.11 -> +OPCODE(CHECK_EG_MATCH) // Python 3.11 -> +OPCODE(BEFORE_WITH) // Python 3.11 -> +OPCODE(RETURN_GENERATOR) // Python 3.11 -> +OPCODE(ASYNC_GEN_WRAP) // Python 3.11 +OPCODE(PREP_RERAISE_STAR) // Python 3.11 +OPCODE(INTERPRETER_EXIT) // Python 3.12 -> +OPCODE(END_FOR) // Python 3.12 -> +OPCODE(END_SEND) // Python 3.12 -> +OPCODE(RESERVED) // Python 3.12 -> +OPCODE(BINARY_SLICE) // Python 3.12 -> +OPCODE(STORE_SLICE) // Python 3.12 -> +OPCODE(CLEANUP_THROW) // Python 3.12 -> /* Has parameter word */ -OPCODE_A_FIRST(STORE_NAME) -OPCODE_A(DELETE_NAME) -OPCODE_A(UNPACK_TUPLE) -OPCODE_A(UNPACK_LIST) -OPCODE_A(UNPACK_ARG) -OPCODE_A(STORE_ATTR) -OPCODE_A(DELETE_ATTR) -OPCODE_A(STORE_GLOBAL) -OPCODE_A(DELETE_GLOBAL) -OPCODE_A(ROT_N) -OPCODE_A(UNPACK_VARARG) -OPCODE_A(LOAD_CONST) -OPCODE_A(LOAD_NAME) -OPCODE_A(BUILD_TUPLE) -OPCODE_A(BUILD_LIST) -OPCODE_A(BUILD_MAP) -OPCODE_A(LOAD_ATTR) -OPCODE_A(COMPARE_OP) -OPCODE_A(IMPORT_NAME) -OPCODE_A(IMPORT_FROM) -OPCODE_A(JUMP_FORWARD) -OPCODE_A(JUMP_IF_FALSE) -OPCODE_A(JUMP_IF_TRUE) -OPCODE_A(JUMP_ABSOLUTE) -OPCODE_A(FOR_LOOP) -OPCODE_A(LOAD_LOCAL) -OPCODE_A(LOAD_GLOBAL) -OPCODE_A(SET_FUNC_ARGS) -OPCODE_A(SETUP_LOOP) -OPCODE_A(SETUP_EXCEPT) -OPCODE_A(SETUP_FINALLY) -OPCODE_A(RESERVE_FAST) -OPCODE_A(LOAD_FAST) -OPCODE_A(STORE_FAST) -OPCODE_A(DELETE_FAST) -OPCODE_A(GEN_START) -OPCODE_A(SET_LINENO) -OPCODE_A(STORE_ANNOTATION) -OPCODE_A(RAISE_VARARGS) -OPCODE_A(CALL_FUNCTION) -OPCODE_A(MAKE_FUNCTION) -OPCODE_A(BUILD_SLICE) -OPCODE_A(CALL_FUNCTION_VAR) -OPCODE_A(CALL_FUNCTION_KW) -OPCODE_A(CALL_FUNCTION_VAR_KW) -OPCODE_A(CALL_FUNCTION_EX) -OPCODE_A(UNPACK_SEQUENCE) -OPCODE_A(FOR_ITER) -OPCODE_A(DUP_TOPX) -OPCODE_A(BUILD_SET) -OPCODE_A(JUMP_IF_FALSE_OR_POP) -OPCODE_A(JUMP_IF_TRUE_OR_POP) -OPCODE_A(POP_JUMP_IF_FALSE) -OPCODE_A(POP_JUMP_IF_TRUE) -OPCODE_A(CONTINUE_LOOP) -OPCODE_A(MAKE_CLOSURE) -OPCODE_A(LOAD_CLOSURE) -OPCODE_A(LOAD_DEREF) -OPCODE_A(STORE_DEREF) -OPCODE_A(DELETE_DEREF) -OPCODE_A(EXTENDED_ARG) -OPCODE_A(SETUP_WITH) -OPCODE_A(SET_ADD) -OPCODE_A(MAP_ADD) -OPCODE_A(UNPACK_EX) -OPCODE_A(LIST_APPEND) -OPCODE_A(LOAD_CLASSDEREF) -OPCODE_A(MATCH_CLASS) -OPCODE_A(BUILD_LIST_UNPACK) -OPCODE_A(BUILD_MAP_UNPACK) -OPCODE_A(BUILD_MAP_UNPACK_WITH_CALL) -OPCODE_A(BUILD_TUPLE_UNPACK) -OPCODE_A(BUILD_SET_UNPACK) -OPCODE_A(SETUP_ASYNC_WITH) -OPCODE_A(FORMAT_VALUE) -OPCODE_A(BUILD_CONST_KEY_MAP) -OPCODE_A(BUILD_STRING) -OPCODE_A(BUILD_TUPLE_UNPACK_WITH_CALL) -OPCODE_A(LOAD_METHOD) -OPCODE_A(CALL_METHOD) -OPCODE_A(CALL_FINALLY) -OPCODE_A(POP_FINALLY) -OPCODE_A(IS_OP) -OPCODE_A(CONTAINS_OP) -OPCODE_A(RERAISE) -OPCODE_A(JUMP_IF_NOT_EXC_MATCH) -OPCODE_A(LIST_EXTEND) -OPCODE_A(SET_UPDATE) -OPCODE_A(DICT_MERGE) -OPCODE_A(DICT_UPDATE) -OPCODE_A(SWAP) -OPCODE_A(POP_JUMP_FORWARD_IF_FALSE) -OPCODE_A(POP_JUMP_FORWARD_IF_TRUE) -OPCODE_A(COPY) -OPCODE_A(BINARY_OP) -OPCODE_A(SEND) -OPCODE_A(POP_JUMP_FORWARD_IF_NOT_NONE) -OPCODE_A(POP_JUMP_FORWARD_IF_NONE) -OPCODE_A(GET_AWAITABLE) -OPCODE_A(JUMP_BACKWARD_NO_INTERRUPT) -OPCODE_A(MAKE_CELL) -OPCODE_A(JUMP_BACKWARD) -OPCODE_A(COPY_FREE_VARS) -OPCODE_A(RESUME) -OPCODE_A(PRECALL) -OPCODE_A(CALL) -OPCODE_A(KW_NAMES) -OPCODE_A(POP_JUMP_BACKWARD_IF_NOT_NONE) -OPCODE_A(POP_JUMP_BACKWARD_IF_NONE) -OPCODE_A(POP_JUMP_BACKWARD_IF_FALSE) -OPCODE_A(POP_JUMP_BACKWARD_IF_TRUE) +OPCODE_A_FIRST(STORE_NAME) // Python 1.0 -> names[A] +OPCODE_A(DELETE_NAME) // Python 1.0 -> names[A] +OPCODE_A(UNPACK_TUPLE) // Python 1.0 - 1.6 A=count +OPCODE_A(UNPACK_LIST) // Python 1.0 - 1.6 A=count +OPCODE_A(UNPACK_ARG) // Python 1.0 - 1.4 A=count +OPCODE_A(STORE_ATTR) // Python 1.0 -> names[A] +OPCODE_A(DELETE_ATTR) // Python 1.0 -> names[A] +OPCODE_A(STORE_GLOBAL) // Python 1.0 -> names[A] +OPCODE_A(DELETE_GLOBAL) // Python 1.0 -> names[A] +OPCODE_A(ROT_N) // Python 3.10 A=count +OPCODE_A(UNPACK_VARARG) // Python 1.0 - 1.4 A=count +OPCODE_A(LOAD_CONST) // Python 1.0 -> consts[A] +OPCODE_A(LOAD_NAME) // Python 1.0 -> names[A] +OPCODE_A(BUILD_TUPLE) // Python 1.0 -> A=size +OPCODE_A(BUILD_LIST) // Python 1.0 -> A=size +OPCODE_A(BUILD_MAP) // Python 1.0 -> A=size +OPCODE_A(LOAD_ATTR) // Python 1.0 -> names[A] +OPCODE_A(COMPARE_OP) // Python 1.0 -> cmp_ops[A] +OPCODE_A(IMPORT_NAME) // Python 1.0 -> names[A] +OPCODE_A(IMPORT_FROM) // Python 1.0 -> names[A] +OPCODE_A(ACCESS_MODE) // Python 1.0 - 1.4 names[A] +OPCODE_A(JUMP_FORWARD) // Python 1.0 -> rel jmp +A +OPCODE_A(JUMP_IF_FALSE) // Python 1.0 - 2.6, 3.0 rel jmp +A +OPCODE_A(JUMP_IF_TRUE) // Python 1.0 - 2.6, 3.0 rel jmp +A +OPCODE_A(JUMP_ABSOLUTE) // Python 1.0 - 3.10 abs jmp A +OPCODE_A(FOR_LOOP) // Python 1.0 - 2.2 rel jmp +A +OPCODE_A(LOAD_LOCAL) // Python 1.0 - 1.4 names[A] +OPCODE_A(LOAD_GLOBAL) // Python 1.0 -> names[A] +OPCODE_A(SET_FUNC_ARGS) // Python 1.1 - 1.4 A=count +OPCODE_A(SETUP_LOOP) // Python 1.0 - 3.7 rel jmp +A +OPCODE_A(SETUP_EXCEPT) // Python 1.0 - 3.7 rel jmp +A +OPCODE_A(SETUP_FINALLY) // Python 1.0 - 3.10 rel jmp +A +OPCODE_A(RESERVE_FAST) // Python 1.0 - 1.2 A=count +OPCODE_A(LOAD_FAST) // Python 1.0 -> locals[A] +OPCODE_A(STORE_FAST) // Python 1.0 -> locals[A] +OPCODE_A(DELETE_FAST) // Python 1.0 -> locals[A] +OPCODE_A(GEN_START) // Python 3.10 ??? +OPCODE_A(SET_LINENO) // Python 1.0 - 2.2 A=line +OPCODE_A(STORE_ANNOTATION) // Python 3.6 names[A] +OPCODE_A(RAISE_VARARGS) // Python 1.3 -> A=count +OPCODE_A(CALL_FUNCTION) // Python 1.3 - 3.5 A=(#args)+(#kwargs<<8) + // Python 3.6 - 3.10 A=#args +OPCODE_A(MAKE_FUNCTION) // Python 1.3 - 2.7 A=#defaults + // Python 3.0 - 3.5 A=(#defaults)+(#kwdefaults<<8)+(#annotations<<16) + // Python 3.6 -> A=flags +OPCODE_A(BUILD_SLICE) // Python 1.4 -> A=count +OPCODE_A(CALL_FUNCTION_VAR) // Python 1.6 - 3.5 A=(#args)+(#kwargs<<8) +OPCODE_A(CALL_FUNCTION_KW) // Python 1.6 - 3.5 A=(#args)+(#kwargs<<8) + // Python 3.6 - 3.10 A=#args +OPCODE_A(CALL_FUNCTION_VAR_KW) // Python 1.6 - 3.5 A=(#args)+(#kwargs<<8) +OPCODE_A(CALL_FUNCTION_EX) // Python 3.6 -> A=flags +OPCODE_A(UNPACK_SEQUENCE) // Python 2.0 -> A=count +OPCODE_A(FOR_ITER) // Python 2.0 -> rel jmp +A +OPCODE_A(DUP_TOPX) // Python 2.0 - 3.1 A=count +OPCODE_A(BUILD_SET) // Python 2.7 -> A=size +OPCODE_A(JUMP_IF_FALSE_OR_POP) // Python 2.7, 3.1 - 3.11 abs jmp A +OPCODE_A(JUMP_IF_TRUE_OR_POP) // Python 2.7, 3.1 - 3.11 abs jmp A +OPCODE_A(POP_JUMP_IF_FALSE) // Python 2.7, 3.1 - 3.10 abs jmp A + // Python 3.12 -> rel jmp +A +OPCODE_A(POP_JUMP_IF_TRUE) // Python 2.7, 3.1 - 3.10 abs jmp A + // Python 3.12 -> rel jmp +A +OPCODE_A(CONTINUE_LOOP) // Python 2.1 - 3.7 abs jmp A +OPCODE_A(MAKE_CLOSURE) // Python 2.1 - 2.7 A=#defaults + // Python 3.0 - 3.5 A=(#defaults)+(#kwdefaults<<8)+(#annotations<<16) +OPCODE_A(LOAD_CLOSURE) // Python 2.1 -> freevars[A] +OPCODE_A(LOAD_DEREF) // Python 2.1 -> freevars[A] +OPCODE_A(STORE_DEREF) // Python 2.1 -> freevars[A] +OPCODE_A(DELETE_DEREF) // Python 3.2 -> freevars[A] +OPCODE_A(EXTENDED_ARG) // Python 2.0 -> A=extended_arg +OPCODE_A(SETUP_WITH) // Python 2.7, 3.2 - 3.10 rel jmp +A +OPCODE_A(SET_ADD) // Python 2.7, 3.1 -> stack[A] +OPCODE_A(MAP_ADD) // Python 2.7, 3.1 -> stack[A] +OPCODE_A(UNPACK_EX) // Python 3.0 -> A=(before)+(after<<8) +OPCODE_A(LIST_APPEND) // Python 2.7, 3.1 -> stack[A] +OPCODE_A(LOAD_CLASSDEREF) // Python 3.4 - 3.10 (cellvars+freevars)[A] + // Python 3.11 localsplusnames[A] +OPCODE_A(MATCH_CLASS) // Python 3.10 -> A=#args +OPCODE_A(BUILD_LIST_UNPACK) // Python 3.5 - 3.8 A=count +OPCODE_A(BUILD_MAP_UNPACK) // Python 3.5 - 3.8 A=count +OPCODE_A(BUILD_MAP_UNPACK_WITH_CALL) // Python 3.5 A=(count)+(fnloc<<8) + // Python 3.6 - 3.8 A=count +OPCODE_A(BUILD_TUPLE_UNPACK) // Python 3.5 - 3.8 A=count +OPCODE_A(BUILD_SET_UNPACK) // Python 3.5 - 3.8 A=count +OPCODE_A(SETUP_ASYNC_WITH) // Python 3.5 - 3.10 rel jmp +A +OPCODE_A(FORMAT_VALUE) // Python 3.6 -> A=conversion_type +OPCODE_A(BUILD_CONST_KEY_MAP) // Python 3.6 -> A=count +OPCODE_A(BUILD_STRING) // Python 3.6 -> A=count +OPCODE_A(BUILD_TUPLE_UNPACK_WITH_CALL) // Python 3.6 - 3.8 A=count +OPCODE_A(LOAD_METHOD) // Python 3.7 - 3.11 names[A] +OPCODE_A(CALL_METHOD) // Python 3.7 - 3.10 A=#args +OPCODE_A(CALL_FINALLY) // Python 3.8 rel jmp +A +OPCODE_A(POP_FINALLY) // Python 3.8 A=flags +OPCODE_A(IS_OP) // Python 3.9 -> A=inverted +OPCODE_A(CONTAINS_OP) // Python 3.9 -> A=inverted +OPCODE_A(RERAISE) // Python 3.10 -> A=flag +OPCODE_A(JUMP_IF_NOT_EXC_MATCH) // Python 3.9 - 3.10 abs jmp A +OPCODE_A(LIST_EXTEND) // Python 3.9 -> stack[A] +OPCODE_A(SET_UPDATE) // Python 3.9 -> stack[A] +OPCODE_A(DICT_MERGE) // Python 3.9 -> stack[A] +OPCODE_A(DICT_UPDATE) // Python 3.9 -> stack[A] +OPCODE_A(SWAP) // Python 3.11 -> stack[A] +OPCODE_A(POP_JUMP_FORWARD_IF_FALSE) // Python 3.11 rel jmp +A +OPCODE_A(POP_JUMP_FORWARD_IF_TRUE) // Python 3.11 rel jmp +A +OPCODE_A(COPY) // Python 3.11 -> stack[A] +OPCODE_A(BINARY_OP) // Python 3.11 -> bin_ops[A] +OPCODE_A(SEND) // Python 3.11 -> rel jmp +A +OPCODE_A(POP_JUMP_FORWARD_IF_NOT_NONE) // Python 3.11 rel jmp +A +OPCODE_A(POP_JUMP_FORWARD_IF_NONE) // Python 3.11 rel jmp +A +OPCODE_A(GET_AWAITABLE) // Python 3.11 -> A=awaitable_type +OPCODE_A(JUMP_BACKWARD_NO_INTERRUPT) // Python 3.11 -> rel jmp -A +OPCODE_A(MAKE_CELL) // Python 3.11 -> locals[A] +OPCODE_A(JUMP_BACKWARD) // Python 3.11 -> rel jmp -A +OPCODE_A(COPY_FREE_VARS) // Python 3.11 -> A=count +OPCODE_A(RESUME) // Python 3.11 -> ??? +OPCODE_A(PRECALL) // Python 3.11 A=#args +OPCODE_A(CALL) // Python 3.11 -> A=#args +OPCODE_A(KW_NAMES) // Python 3.11 -> consts[A] +OPCODE_A(POP_JUMP_BACKWARD_IF_NOT_NONE) // Python 3.11 jmp rel -A +OPCODE_A(POP_JUMP_BACKWARD_IF_NONE) // Python 3.11 jmp rel -A +OPCODE_A(POP_JUMP_BACKWARD_IF_FALSE) // Python 3.11 jmp rel -A +OPCODE_A(POP_JUMP_BACKWARD_IF_TRUE) // Python 3.11 jmp rel -A +OPCODE_A(RETURN_CONST) // Python 3.12 -> consts[A] +OPCODE_A(LOAD_FAST_CHECK) // Python 3.12 -> locals[A] +OPCODE_A(POP_JUMP_IF_NOT_NONE) // Python 3.12 -> rel jmp +A +OPCODE_A(POP_JUMP_IF_NONE) // Python 3.12 -> rel jmp +A +OPCODE_A(LOAD_SUPER_ATTR) // Python 3.12 -> A=(flags&0x3)+names[A<<2] +OPCODE_A(LOAD_FAST_AND_CLEAR) // Python 3.12 -> locals[A] +OPCODE_A(YIELD_VALUE) // Python 3.12 -> ??? +OPCODE_A(CALL_INTRINSIC_1) // Python 3.12 -> intrinsics_1[A] +OPCODE_A(CALL_INTRINSIC_2) // Python 3.12 -> intrinsics_2[A] +OPCODE_A(LOAD_FROM_DICT_OR_GLOBALS) // Python 3.12 -> names[A] +OPCODE_A(LOAD_FROM_DICT_OR_DEREF) // Python 3.12 -> localsplusnames[A] + +/* Instrumented opcodes */ +OPCODE_A(INSTRUMENTED_LOAD_SUPER_ATTR) // Python 3.12 -> (see LOAD_SUPER_ATTR) +OPCODE_A(INSTRUMENTED_POP_JUMP_IF_NONE) // Python 3.12 -> (see POP_JUMP_IF_NONE) +OPCODE_A(INSTRUMENTED_POP_JUMP_IF_NOT_NONE) // Python 3.12 -> (see POP_JUMP_IF_NOT_NONE) +OPCODE_A(INSTRUMENTED_RESUME) // Python 3.12 -> (see RESUME) +OPCODE_A(INSTRUMENTED_CALL) // Python 3.12 -> (see CALL) +OPCODE_A(INSTRUMENTED_RETURN_VALUE) // Python 3.12 -> (see RETURN_VALUE) +OPCODE_A(INSTRUMENTED_YIELD_VALUE) // Python 3.12 -> (see YIELD_VALUE) +OPCODE_A(INSTRUMENTED_CALL_FUNCTION_EX) // Python 3.12 -> (see CALL_FUNCTION_EX) +OPCODE_A(INSTRUMENTED_JUMP_FORWARD) // Python 3.12 -> (see JUMP_FORWARD) +OPCODE_A(INSTRUMENTED_JUMP_BACKWARD) // Python 3.12 -> (see JUMP_BACKWARD) +OPCODE_A(INSTRUMENTED_RETURN_CONST) // Python 3.12 -> (see RETURN_CONST) +OPCODE_A(INSTRUMENTED_FOR_ITER) // Python 3.12 -> (see FOR_ITER) +OPCODE_A(INSTRUMENTED_POP_JUMP_IF_FALSE) // Python 3.12 -> (see POP_JUMP_IF_FALSE) +OPCODE_A(INSTRUMENTED_POP_JUMP_IF_TRUE) // Python 3.12 -> (see POP_JUMP_IF_TRUE) +OPCODE_A(INSTRUMENTED_END_FOR) // Python 3.12 -> (see END_FOR) +OPCODE_A(INSTRUMENTED_END_SEND) // Python 3.12 -> (see END_SEND) +OPCODE_A(INSTRUMENTED_INSTRUCTION) // Python 3.12 -> ??? +OPCODE_A(INSTRUMENTED_LINE) // Python 3.12 -> ??? diff --git a/bytes/bytecode_map.h b/bytes/bytecode_map.h new file mode 100644 index 000000000..aeb47e87f --- /dev/null +++ b/bytes/bytecode_map.h @@ -0,0 +1,14 @@ +#include "bytecode.h" + +#define BEGIN_MAP(maj, min) \ + int python_##maj##_##min##_map(int id) \ + { \ + switch (id) { + +#define MAP_OP(op, name) \ + case op: return Pyc::name; + +#define END_MAP() \ + default: return Pyc::PYC_INVALID_OPCODE; \ + } \ + } diff --git a/bytes/comp_map.py b/bytes/comp_map.py deleted file mode 100755 index 6ba295e57..000000000 --- a/bytes/comp_map.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python - -# This file is part of pycdc. -# -# pycdc is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# pycdc is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with pycdc. If not, see . - -import sys -import os - -if len(sys.argv) != 3: - sys.stderr.write('Usage: %s in_dir out_dir\n' % sys.argv[0]) - sys.exit(1) - -if not os.path.exists(sys.argv[2]): - os.mkdir(sys.argv[2]) - -maplist = [ 10, 11, 13, 14, 15, 16, - 20, 21, 22, 23, 24, 25, 26, 27, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 310, 311 ] - -for mapver in maplist: - infile = open(os.path.join(sys.argv[1], 'python_%d.map' % mapver), 'rt') - outfile = open(os.path.join(sys.argv[2], 'python_%d.cpp' % mapver), 'wt') - - idToOpcode = {} - opcodeToId = {} - for ln in infile.readlines(): - fileid, code = ln.split() - idToOpcode[int(fileid)] = code - opcodeToId[code] = int(fileid) - - outfile.write('/* This file was auto-generated with comp_map.py. DO NOT EDIT! */\n\n') - outfile.write('#include "bytecode.h"\n\n') - outfile.write('int python_%d_map(int id)\n' % mapver) - outfile.write('{\n') - outfile.write(' switch (id) {\n') - for i in sorted(idToOpcode): - outfile.write(' case %d: return Pyc::%s;\n' % (i, idToOpcode[i])) - outfile.write(' default: return Pyc::PYC_INVALID_OPCODE;\n') - outfile.write(' }\n') - outfile.write('}\n\n') - outfile.write('int python_%d_unmap(int id)\n' % mapver) - outfile.write('{\n') - outfile.write(' switch (id) {\n') - for i in sorted(opcodeToId): - outfile.write(' case Pyc::%s: return %d;\n' % (i, opcodeToId[i])) - outfile.write(' default: return -1;\n') - outfile.write(' }\n') - outfile.write('}\n') - - infile.close() - outfile.close() diff --git a/bytes/python_10.map b/bytes/python_10.map deleted file mode 100644 index a95103578..000000000 --- a/bytes/python_10.map +++ /dev/null @@ -1,77 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -14 UNARY_CALL -15 UNARY_INVERT -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_CALL -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -60 STORE_SUBSCR -61 DELETE_SUBSCR -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -80 BREAK_LOOP -81 RAISE_EXCEPTION -82 LOAD_LOCALS -83 RETURN_VALUE -86 BUILD_FUNCTION -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_TUPLE_A -93 UNPACK_LIST_A -94 UNPACK_ARG_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 UNPACK_VARARG_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -115 LOAD_LOCAL_A -116 LOAD_GLOBAL_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -123 RESERVE_FAST_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A diff --git a/bytes/python_11.map b/bytes/python_11.map deleted file mode 100644 index 20d54e680..000000000 --- a/bytes/python_11.map +++ /dev/null @@ -1,80 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -14 UNARY_CALL -15 UNARY_INVERT -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_CALL -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -60 STORE_SUBSCR -61 DELETE_SUBSCR -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -80 BREAK_LOOP -81 RAISE_EXCEPTION -82 LOAD_LOCALS -83 RETURN_VALUE -84 LOAD_GLOBALS -85 EXEC_STMT -86 BUILD_FUNCTION -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_TUPLE_A -93 UNPACK_LIST_A -94 UNPACK_ARG_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 UNPACK_VARARG_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -115 LOAD_LOCAL_A -116 LOAD_GLOBAL_A -117 SET_FUNC_ARGS_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -123 RESERVE_FAST_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A diff --git a/bytes/python_13.map b/bytes/python_13.map deleted file mode 100644 index 20d54e680..000000000 --- a/bytes/python_13.map +++ /dev/null @@ -1,80 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -14 UNARY_CALL -15 UNARY_INVERT -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_CALL -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -60 STORE_SUBSCR -61 DELETE_SUBSCR -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -80 BREAK_LOOP -81 RAISE_EXCEPTION -82 LOAD_LOCALS -83 RETURN_VALUE -84 LOAD_GLOBALS -85 EXEC_STMT -86 BUILD_FUNCTION -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_TUPLE_A -93 UNPACK_LIST_A -94 UNPACK_ARG_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 UNPACK_VARARG_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -115 LOAD_LOCAL_A -116 LOAD_GLOBAL_A -117 SET_FUNC_ARGS_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -123 RESERVE_FAST_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A diff --git a/bytes/python_14.map b/bytes/python_14.map deleted file mode 100644 index 418efb92a..000000000 --- a/bytes/python_14.map +++ /dev/null @@ -1,84 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -14 UNARY_CALL -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_CALL -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -60 STORE_SUBSCR -61 DELETE_SUBSCR -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -80 BREAK_LOOP -81 RAISE_EXCEPTION -82 LOAD_LOCALS -83 RETURN_VALUE -85 EXEC_STMT -86 BUILD_FUNCTION -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_TUPLE_A -93 UNPACK_LIST_A -94 UNPACK_ARG_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 UNPACK_VARARG_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -115 LOAD_LOCAL_A -116 LOAD_GLOBAL_A -117 SET_FUNC_ARGS_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -123 RESERVE_FAST_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A diff --git a/bytes/python_15.map b/bytes/python_15.map deleted file mode 100644 index dae3962ce..000000000 --- a/bytes/python_15.map +++ /dev/null @@ -1,80 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -80 BREAK_LOOP -82 LOAD_LOCALS -83 RETURN_VALUE -85 EXEC_STMT -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_TUPLE_A -93 UNPACK_LIST_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -116 LOAD_GLOBAL_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A diff --git a/bytes/python_16.map b/bytes/python_16.map deleted file mode 100644 index a71b6df66..000000000 --- a/bytes/python_16.map +++ /dev/null @@ -1,83 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -80 BREAK_LOOP -82 LOAD_LOCALS -83 RETURN_VALUE -85 EXEC_STMT -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_TUPLE_A -93 UNPACK_LIST_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -116 LOAD_GLOBAL_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A diff --git a/bytes/python_1_0.cpp b/bytes/python_1_0.cpp new file mode 100644 index 000000000..b271c66b5 --- /dev/null +++ b/bytes/python_1_0.cpp @@ -0,0 +1,89 @@ +#include "bytecode_map.h" + +BEGIN_MAP(1, 0) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(14, UNARY_CALL) + MAP_OP(15, UNARY_INVERT) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_CALL) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, RAISE_EXCEPTION) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, LOAD_GLOBALS) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, BUILD_FUNCTION) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_TUPLE_A) + MAP_OP(93, UNPACK_LIST_A) + MAP_OP(94, UNPACK_ARG_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, UNPACK_VARARG_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(109, ACCESS_MODE_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(115, LOAD_LOCAL_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(123, RESERVE_FAST_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) +END_MAP() diff --git a/bytes/python_1_1.cpp b/bytes/python_1_1.cpp new file mode 100644 index 000000000..c3b61105e --- /dev/null +++ b/bytes/python_1_1.cpp @@ -0,0 +1,90 @@ +#include "bytecode_map.h" + +BEGIN_MAP(1, 1) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(14, UNARY_CALL) + MAP_OP(15, UNARY_INVERT) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_CALL) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, RAISE_EXCEPTION) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, LOAD_GLOBALS) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, BUILD_FUNCTION) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_TUPLE_A) + MAP_OP(93, UNPACK_LIST_A) + MAP_OP(94, UNPACK_ARG_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, UNPACK_VARARG_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(109, ACCESS_MODE_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(115, LOAD_LOCAL_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(117, SET_FUNC_ARGS_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(123, RESERVE_FAST_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) +END_MAP() diff --git a/bytes/python_1_3.cpp b/bytes/python_1_3.cpp new file mode 100644 index 000000000..cda608a6a --- /dev/null +++ b/bytes/python_1_3.cpp @@ -0,0 +1,87 @@ +#include "bytecode_map.h" + +BEGIN_MAP(1, 3) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(85, EXEC_STMT) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_TUPLE_A) + MAP_OP(93, UNPACK_LIST_A) + MAP_OP(94, UNPACK_ARG_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, UNPACK_VARARG_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(109, ACCESS_MODE_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(115, LOAD_LOCAL_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(117, SET_FUNC_ARGS_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) +END_MAP() diff --git a/bytes/python_1_4.cpp b/bytes/python_1_4.cpp new file mode 100644 index 000000000..f632d8fe9 --- /dev/null +++ b/bytes/python_1_4.cpp @@ -0,0 +1,89 @@ +#include "bytecode_map.h" + +BEGIN_MAP(1, 4) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(85, EXEC_STMT) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_TUPLE_A) + MAP_OP(93, UNPACK_LIST_A) + MAP_OP(94, UNPACK_ARG_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, UNPACK_VARARG_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(109, ACCESS_MODE_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(115, LOAD_LOCAL_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(117, SET_FUNC_ARGS_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) +END_MAP() diff --git a/bytes/python_1_5.cpp b/bytes/python_1_5.cpp new file mode 100644 index 000000000..5ca45fa40 --- /dev/null +++ b/bytes/python_1_5.cpp @@ -0,0 +1,84 @@ +#include "bytecode_map.h" + +BEGIN_MAP(1, 5) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(85, EXEC_STMT) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_TUPLE_A) + MAP_OP(93, UNPACK_LIST_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) +END_MAP() diff --git a/bytes/python_1_6.cpp b/bytes/python_1_6.cpp new file mode 100644 index 000000000..7bb41abc9 --- /dev/null +++ b/bytes/python_1_6.cpp @@ -0,0 +1,87 @@ +#include "bytecode_map.h" + +BEGIN_MAP(1, 6) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(85, EXEC_STMT) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_TUPLE_A) + MAP_OP(93, UNPACK_LIST_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) +END_MAP() diff --git a/bytes/python_20.map b/bytes/python_20.map deleted file mode 100644 index 7a24f109e..000000000 --- a/bytes/python_20.map +++ /dev/null @@ -1,99 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -116 LOAD_GLOBAL_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_21.map b/bytes/python_21.map deleted file mode 100644 index bcec977b4..000000000 --- a/bytes/python_21.map +++ /dev/null @@ -1,104 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_22.map b/bytes/python_22.map deleted file mode 100644 index 483a2ac9d..000000000 --- a/bytes/python_22.map +++ /dev/null @@ -1,111 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 FOR_LOOP_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 SET_LINENO_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_23.map b/bytes/python_23.map deleted file mode 100644 index 957781d21..000000000 --- a/bytes/python_23.map +++ /dev/null @@ -1,109 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_24.map b/bytes/python_24.map deleted file mode 100644 index 61ea35af0..000000000 --- a/bytes/python_24.map +++ /dev/null @@ -1,111 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -18 LIST_APPEND -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_25.map b/bytes/python_25.map deleted file mode 100644 index 9c2ba9471..000000000 --- a/bytes/python_25.map +++ /dev/null @@ -1,112 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -18 LIST_APPEND -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_26.map b/bytes/python_26.map deleted file mode 100644 index 7c57e01e3..000000000 --- a/bytes/python_26.map +++ /dev/null @@ -1,113 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -18 LIST_APPEND -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -54 STORE_MAP -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_MAP_A -105 LOAD_ATTR_A -106 COMPARE_OP_A -107 IMPORT_NAME_A -108 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_27.map b/bytes/python_27.map deleted file mode 100644 index dc6050f5c..000000000 --- a/bytes/python_27.map +++ /dev/null @@ -1,119 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -13 UNARY_CONVERT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -21 BINARY_DIVIDE -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -30 SLICE_0 -31 SLICE_1 -32 SLICE_2 -33 SLICE_3 -40 STORE_SLICE_0 -41 STORE_SLICE_1 -42 STORE_SLICE_2 -43 STORE_SLICE_3 -50 DELETE_SLICE_0 -51 DELETE_SLICE_1 -52 DELETE_SLICE_2 -53 DELETE_SLICE_3 -54 STORE_MAP -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -58 INPLACE_DIVIDE -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -70 PRINT_EXPR -71 PRINT_ITEM -72 PRINT_NEWLINE -73 PRINT_ITEM_TO -74 PRINT_NEWLINE_TO -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -82 LOAD_LOCALS -83 RETURN_VALUE -84 IMPORT_STAR -85 EXEC_STMT -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 BUILD_CLASS -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 LIST_APPEND_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 SETUP_WITH_A -145 EXTENDED_ARG_A -146 SET_ADD_A -147 MAP_ADD_A diff --git a/bytes/python_2_0.cpp b/bytes/python_2_0.cpp new file mode 100644 index 000000000..250a76f38 --- /dev/null +++ b/bytes/python_2_0.cpp @@ -0,0 +1,103 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 0) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_2_1.cpp b/bytes/python_2_1.cpp new file mode 100644 index 000000000..94d45b861 --- /dev/null +++ b/bytes/python_2_1.cpp @@ -0,0 +1,108 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 1) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_2_2.cpp b/bytes/python_2_2.cpp new file mode 100644 index 000000000..28d26be55 --- /dev/null +++ b/bytes/python_2_2.cpp @@ -0,0 +1,115 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 2) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, FOR_LOOP_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, SET_LINENO_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_2_3.cpp b/bytes/python_2_3.cpp new file mode 100644 index 000000000..6b5fc3149 --- /dev/null +++ b/bytes/python_2_3.cpp @@ -0,0 +1,113 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 3) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_2_4.cpp b/bytes/python_2_4.cpp new file mode 100644 index 000000000..ba4a5e156 --- /dev/null +++ b/bytes/python_2_4.cpp @@ -0,0 +1,115 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 4) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(18, LIST_APPEND) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_2_5.cpp b/bytes/python_2_5.cpp new file mode 100644 index 000000000..3bf70dcac --- /dev/null +++ b/bytes/python_2_5.cpp @@ -0,0 +1,116 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 5) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(18, LIST_APPEND) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_2_6.cpp b/bytes/python_2_6.cpp new file mode 100644 index 000000000..996f96f60 --- /dev/null +++ b/bytes/python_2_6.cpp @@ -0,0 +1,117 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 6) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(18, LIST_APPEND) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(54, STORE_MAP) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_MAP_A) + MAP_OP(105, LOAD_ATTR_A) + MAP_OP(106, COMPARE_OP_A) + MAP_OP(107, IMPORT_NAME_A) + MAP_OP(108, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_2_7.cpp b/bytes/python_2_7.cpp new file mode 100644 index 000000000..9897c4b00 --- /dev/null +++ b/bytes/python_2_7.cpp @@ -0,0 +1,123 @@ +#include "bytecode_map.h" + +BEGIN_MAP(2, 7) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(13, UNARY_CONVERT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(21, BINARY_DIVIDE) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(30, SLICE_0) + MAP_OP(31, SLICE_1) + MAP_OP(32, SLICE_2) + MAP_OP(33, SLICE_3) + MAP_OP(40, STORE_SLICE_0) + MAP_OP(41, STORE_SLICE_1) + MAP_OP(42, STORE_SLICE_2) + MAP_OP(43, STORE_SLICE_3) + MAP_OP(50, DELETE_SLICE_0) + MAP_OP(51, DELETE_SLICE_1) + MAP_OP(52, DELETE_SLICE_2) + MAP_OP(53, DELETE_SLICE_3) + MAP_OP(54, STORE_MAP) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(58, INPLACE_DIVIDE) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, PRINT_ITEM) + MAP_OP(72, PRINT_NEWLINE) + MAP_OP(73, PRINT_ITEM_TO) + MAP_OP(74, PRINT_NEWLINE_TO) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(82, LOAD_LOCALS) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, EXEC_STMT) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, BUILD_CLASS) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, LIST_APPEND_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(145, EXTENDED_ARG_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) +END_MAP() diff --git a/bytes/python_30.map b/bytes/python_30.map deleted file mode 100644 index 862ebb55a..000000000 --- a/bytes/python_30.map +++ /dev/null @@ -1,97 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -17 SET_ADD -18 LIST_APPEND -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -54 STORE_MAP -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 STORE_LOCALS -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -83 RETURN_VALUE -84 IMPORT_STAR -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A diff --git a/bytes/python_31.map b/bytes/python_31.map deleted file mode 100644 index 4dacb03a7..000000000 --- a/bytes/python_31.map +++ /dev/null @@ -1,100 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -54 STORE_MAP -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 STORE_LOCALS -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -83 RETURN_VALUE -84 IMPORT_STAR -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 DUP_TOPX_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_A -112 JUMP_IF_TRUE_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A diff --git a/bytes/python_310.map b/bytes/python_310.map deleted file mode 100644 index 94f7c30b6..000000000 --- a/bytes/python_310.map +++ /dev/null @@ -1,127 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -6 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -16 BINARY_MATRIX_MULTIPLY -17 INPLACE_MATRIX_MULTIPLY -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -30 GET_LEN -31 MATCH_MAPPING -32 MATCH_SEQUENCE -33 MATCH_KEYS -34 COPY_DICT_WITHOUT_KEYS -49 WITH_EXCEPT_START -50 GET_AITER -51 GET_ANEXT -52 BEFORE_ASYNC_WITH -54 END_ASYNC_FOR -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 GET_YIELD_FROM_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -73 GET_AWAITABLE -74 LOAD_ASSERTION_ERROR -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -82 LIST_TO_TUPLE -83 RETURN_VALUE -84 IMPORT_STAR -85 SETUP_ANNOTATIONS -86 YIELD_VALUE -87 POP_BLOCK -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 ROT_N_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -117 IS_OP_A -118 CONTAINS_OP_A -119 RERAISE_A -121 JUMP_IF_NOT_EXC_MATCH_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -129 GEN_START_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_EX_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A -152 MATCH_CLASS_A -154 SETUP_ASYNC_WITH_A -155 FORMAT_VALUE_A -156 BUILD_CONST_KEY_MAP_A -157 BUILD_STRING_A -160 LOAD_METHOD_A -161 CALL_METHOD_A -162 LIST_EXTEND_A -163 SET_UPDATE_A -164 DICT_MERGE_A -165 DICT_UPDATE_A diff --git a/bytes/python_311.map b/bytes/python_311.map deleted file mode 100644 index 2b7694ab4..000000000 --- a/bytes/python_311.map +++ /dev/null @@ -1,110 +0,0 @@ -0 CACHE -1 POP_TOP -2 PUSH_NULL -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -25 BINARY_SUBSCR -30 GET_LEN -31 MATCH_MAPPING -32 MATCH_SEQUENCE -33 MATCH_KEYS -35 PUSH_EXC_INFO -36 CHECK_EXC_MATCH -37 CHECK_EG_MATCH -49 WITH_EXCEPT_START -50 GET_AITER -51 GET_ANEXT -52 BEFORE_ASYNC_WITH -53 BEFORE_WITH -54 END_ASYNC_FOR -60 STORE_SUBSCR -61 DELETE_SUBSCR -68 GET_ITER -69 GET_YIELD_FROM_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -74 LOAD_ASSERTION_ERROR -75 RETURN_GENERATOR -82 LIST_TO_TUPLE -83 RETURN_VALUE -84 IMPORT_STAR -85 SETUP_ANNOTATIONS -86 YIELD_VALUE -87 ASYNC_GEN_WRAP -88 PREP_RERAISE_STAR -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -99 SWAP_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -114 POP_JUMP_FORWARD_IF_FALSE_A -115 POP_JUMP_FORWARD_IF_TRUE_A -116 LOAD_GLOBAL_A -117 IS_OP_A -118 CONTAINS_OP_A -119 RERAISE_A -120 COPY_A -122 BINARY_OP_A -123 SEND_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -128 POP_JUMP_FORWARD_IF_NOT_NONE_A -129 POP_JUMP_FORWARD_IF_NONE_A -130 RAISE_VARARGS_A -131 GET_AWAITABLE_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 JUMP_BACKWARD_NO_INTERRUPT_A -135 MAKE_CELL_A -136 LOAD_CLOSURE_A -137 LOAD_DEREF_A -138 STORE_DEREF_A -139 DELETE_DEREF_A -140 JUMP_BACKWARD_A -142 CALL_FUNCTION_EX_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A -149 COPY_FREE_VARS_A -151 RESUME_A -152 MATCH_CLASS_A -155 FORMAT_VALUE_A -156 BUILD_CONST_KEY_MAP_A -157 BUILD_STRING_A -160 LOAD_METHOD_A -162 LIST_EXTEND_A -163 SET_UPDATE_A -164 DICT_MERGE_A -165 DICT_UPDATE_A -166 PRECALL_A -171 CALL_A -172 KW_NAMES_A -173 POP_JUMP_BACKWARD_IF_NOT_NONE_A -174 POP_JUMP_BACKWARD_IF_NONE_A -175 POP_JUMP_BACKWARD_IF_FALSE_A -176 POP_JUMP_BACKWARD_IF_TRUE_A diff --git a/bytes/python_32.map b/bytes/python_32.map deleted file mode 100644 index 031d22726..000000000 --- a/bytes/python_32.map +++ /dev/null @@ -1,101 +0,0 @@ -0 STOP_CODE -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -54 STORE_MAP -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 STORE_LOCALS -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -83 RETURN_VALUE -84 IMPORT_STAR -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A diff --git a/bytes/python_33.map b/bytes/python_33.map deleted file mode 100644 index f69caa94d..000000000 --- a/bytes/python_33.map +++ /dev/null @@ -1,101 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -54 STORE_MAP -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 STORE_LOCALS -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -83 RETURN_VALUE -84 IMPORT_STAR -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A diff --git a/bytes/python_34.map b/bytes/python_34.map deleted file mode 100644 index 77b79abe4..000000000 --- a/bytes/python_34.map +++ /dev/null @@ -1,101 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -54 STORE_MAP -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP -83 RETURN_VALUE -84 IMPORT_STAR -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A diff --git a/bytes/python_35.map b/bytes/python_35.map deleted file mode 100644 index 9487b21a6..000000000 --- a/bytes/python_35.map +++ /dev/null @@ -1,114 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -16 BINARY_MATRIX_MULTIPLY -17 INPLACE_MATRIX_MULTIPLY -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -50 GET_AITER -51 GET_ANEXT -52 BEFORE_ASYNC_WITH -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 GET_YIELD_FROM_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -73 GET_AWAITABLE -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP_START -82 WITH_CLEANUP_FINISH -83 RETURN_VALUE -84 IMPORT_STAR -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -134 MAKE_CLOSURE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -140 CALL_FUNCTION_VAR_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_VAR_KW_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A -149 BUILD_LIST_UNPACK_A -150 BUILD_MAP_UNPACK_A -151 BUILD_MAP_UNPACK_WITH_CALL_A -152 BUILD_TUPLE_UNPACK_A -153 BUILD_SET_UNPACK_A -154 SETUP_ASYNC_WITH_A diff --git a/bytes/python_36.map b/bytes/python_36.map deleted file mode 100644 index fd72d6f5c..000000000 --- a/bytes/python_36.map +++ /dev/null @@ -1,118 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -16 BINARY_MATRIX_MULTIPLY -17 INPLACE_MATRIX_MULTIPLY -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -50 GET_AITER -51 GET_ANEXT -52 BEFORE_ASYNC_WITH -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 GET_YIELD_FROM_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -73 GET_AWAITABLE -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP_START -82 WITH_CLEANUP_FINISH -83 RETURN_VALUE -84 IMPORT_STAR -85 SETUP_ANNOTATIONS -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -127 STORE_ANNOTATION_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_EX_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A -149 BUILD_LIST_UNPACK_A -150 BUILD_MAP_UNPACK_A -151 BUILD_MAP_UNPACK_WITH_CALL_A -152 BUILD_TUPLE_UNPACK_A -153 BUILD_SET_UNPACK_A -154 SETUP_ASYNC_WITH_A -155 FORMAT_VALUE_A -156 BUILD_CONST_KEY_MAP_A -157 BUILD_STRING_A -158 BUILD_TUPLE_UNPACK_WITH_CALL_A diff --git a/bytes/python_37.map b/bytes/python_37.map deleted file mode 100644 index e0a1a9739..000000000 --- a/bytes/python_37.map +++ /dev/null @@ -1,119 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -16 BINARY_MATRIX_MULTIPLY -17 INPLACE_MATRIX_MULTIPLY -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -50 GET_AITER -51 GET_ANEXT -52 BEFORE_ASYNC_WITH -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 GET_YIELD_FROM_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -73 GET_AWAITABLE -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -80 BREAK_LOOP -81 WITH_CLEANUP_START -82 WITH_CLEANUP_FINISH -83 RETURN_VALUE -84 IMPORT_STAR -85 SETUP_ANNOTATIONS -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -119 CONTINUE_LOOP_A -120 SETUP_LOOP_A -121 SETUP_EXCEPT_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_EX_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A -149 BUILD_LIST_UNPACK_A -150 BUILD_MAP_UNPACK_A -151 BUILD_MAP_UNPACK_WITH_CALL_A -152 BUILD_TUPLE_UNPACK_A -153 BUILD_SET_UNPACK_A -154 SETUP_ASYNC_WITH_A -155 FORMAT_VALUE_A -156 BUILD_CONST_KEY_MAP_A -157 BUILD_STRING_A -158 BUILD_TUPLE_UNPACK_WITH_CALL_A -160 LOAD_METHOD_A -161 CALL_METHOD_A diff --git a/bytes/python_38.map b/bytes/python_38.map deleted file mode 100644 index 598b108be..000000000 --- a/bytes/python_38.map +++ /dev/null @@ -1,120 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -6 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -16 BINARY_MATRIX_MULTIPLY -17 INPLACE_MATRIX_MULTIPLY -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -50 GET_AITER -51 GET_ANEXT -52 BEFORE_ASYNC_WITH -53 BEGIN_FINALLY -54 END_ASYNC_FOR -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 GET_YIELD_FROM_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -73 GET_AWAITABLE -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -81 WITH_CLEANUP_START -82 WITH_CLEANUP_FINISH -83 RETURN_VALUE -84 IMPORT_STAR -85 SETUP_ANNOTATIONS -86 YIELD_VALUE -87 POP_BLOCK -88 END_FINALLY -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_EX_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A -149 BUILD_LIST_UNPACK_A -150 BUILD_MAP_UNPACK_A -151 BUILD_MAP_UNPACK_WITH_CALL_A -152 BUILD_TUPLE_UNPACK_A -153 BUILD_SET_UNPACK_A -154 SETUP_ASYNC_WITH_A -155 FORMAT_VALUE_A -156 BUILD_CONST_KEY_MAP_A -157 BUILD_STRING_A -158 BUILD_TUPLE_UNPACK_WITH_CALL_A -160 LOAD_METHOD_A -161 CALL_METHOD_A -162 CALL_FINALLY_A -163 POP_FINALLY_A diff --git a/bytes/python_39.map b/bytes/python_39.map deleted file mode 100644 index 1987a32eb..000000000 --- a/bytes/python_39.map +++ /dev/null @@ -1,119 +0,0 @@ -1 POP_TOP -2 ROT_TWO -3 ROT_THREE -4 DUP_TOP -5 DUP_TOP_TWO -6 ROT_FOUR -9 NOP -10 UNARY_POSITIVE -11 UNARY_NEGATIVE -12 UNARY_NOT -15 UNARY_INVERT -16 BINARY_MATRIX_MULTIPLY -17 INPLACE_MATRIX_MULTIPLY -19 BINARY_POWER -20 BINARY_MULTIPLY -22 BINARY_MODULO -23 BINARY_ADD -24 BINARY_SUBTRACT -25 BINARY_SUBSCR -26 BINARY_FLOOR_DIVIDE -27 BINARY_TRUE_DIVIDE -28 INPLACE_FLOOR_DIVIDE -29 INPLACE_TRUE_DIVIDE -48 RERAISE -49 WITH_EXCEPT_START -50 GET_AITER -51 GET_ANEXT -52 BEFORE_ASYNC_WITH -54 END_ASYNC_FOR -55 INPLACE_ADD -56 INPLACE_SUBTRACT -57 INPLACE_MULTIPLY -59 INPLACE_MODULO -60 STORE_SUBSCR -61 DELETE_SUBSCR -62 BINARY_LSHIFT -63 BINARY_RSHIFT -64 BINARY_AND -65 BINARY_XOR -66 BINARY_OR -67 INPLACE_POWER -68 GET_ITER -69 GET_YIELD_FROM_ITER -70 PRINT_EXPR -71 LOAD_BUILD_CLASS -72 YIELD_FROM -73 GET_AWAITABLE -74 LOAD_ASSERTION_ERROR -75 INPLACE_LSHIFT -76 INPLACE_RSHIFT -77 INPLACE_AND -78 INPLACE_XOR -79 INPLACE_OR -82 LIST_TO_TUPLE -83 RETURN_VALUE -84 IMPORT_STAR -85 SETUP_ANNOTATIONS -86 YIELD_VALUE -87 POP_BLOCK -89 POP_EXCEPT -90 STORE_NAME_A -91 DELETE_NAME_A -92 UNPACK_SEQUENCE_A -93 FOR_ITER_A -94 UNPACK_EX_A -95 STORE_ATTR_A -96 DELETE_ATTR_A -97 STORE_GLOBAL_A -98 DELETE_GLOBAL_A -100 LOAD_CONST_A -101 LOAD_NAME_A -102 BUILD_TUPLE_A -103 BUILD_LIST_A -104 BUILD_SET_A -105 BUILD_MAP_A -106 LOAD_ATTR_A -107 COMPARE_OP_A -108 IMPORT_NAME_A -109 IMPORT_FROM_A -110 JUMP_FORWARD_A -111 JUMP_IF_FALSE_OR_POP_A -112 JUMP_IF_TRUE_OR_POP_A -113 JUMP_ABSOLUTE_A -114 POP_JUMP_IF_FALSE_A -115 POP_JUMP_IF_TRUE_A -116 LOAD_GLOBAL_A -117 IS_OP_A -118 CONTAINS_OP_A -121 JUMP_IF_NOT_EXC_MATCH_A -122 SETUP_FINALLY_A -124 LOAD_FAST_A -125 STORE_FAST_A -126 DELETE_FAST_A -130 RAISE_VARARGS_A -131 CALL_FUNCTION_A -132 MAKE_FUNCTION_A -133 BUILD_SLICE_A -135 LOAD_CLOSURE_A -136 LOAD_DEREF_A -137 STORE_DEREF_A -138 DELETE_DEREF_A -141 CALL_FUNCTION_KW_A -142 CALL_FUNCTION_EX_A -143 SETUP_WITH_A -144 EXTENDED_ARG_A -145 LIST_APPEND_A -146 SET_ADD_A -147 MAP_ADD_A -148 LOAD_CLASSDEREF_A -154 SETUP_ASYNC_WITH_A -155 FORMAT_VALUE_A -156 BUILD_CONST_KEY_MAP_A -157 BUILD_STRING_A -160 LOAD_METHOD_A -161 CALL_METHOD_A -162 LIST_EXTEND_A -163 SET_UPDATE_A -164 DICT_MERGE_A -165 DICT_UPDATE_A diff --git a/bytes/python_3_0.cpp b/bytes/python_3_0.cpp new file mode 100644 index 000000000..05c77b9eb --- /dev/null +++ b/bytes/python_3_0.cpp @@ -0,0 +1,101 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 0) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(17, SET_ADD) + MAP_OP(18, LIST_APPEND) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(54, STORE_MAP) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, STORE_LOCALS) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_A) + MAP_OP(112, JUMP_IF_TRUE_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) +END_MAP() diff --git a/bytes/python_3_1.cpp b/bytes/python_3_1.cpp new file mode 100644 index 000000000..8c907cea2 --- /dev/null +++ b/bytes/python_3_1.cpp @@ -0,0 +1,104 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 1) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(54, STORE_MAP) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, STORE_LOCALS) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, DUP_TOPX_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) +END_MAP() diff --git a/bytes/python_3_10.cpp b/bytes/python_3_10.cpp new file mode 100644 index 000000000..c95945af9 --- /dev/null +++ b/bytes/python_3_10.cpp @@ -0,0 +1,131 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 10) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(6, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(16, BINARY_MATRIX_MULTIPLY) + MAP_OP(17, INPLACE_MATRIX_MULTIPLY) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(30, GET_LEN) + MAP_OP(31, MATCH_MAPPING) + MAP_OP(32, MATCH_SEQUENCE) + MAP_OP(33, MATCH_KEYS) + MAP_OP(34, COPY_DICT_WITHOUT_KEYS) + MAP_OP(49, WITH_EXCEPT_START) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(54, END_ASYNC_FOR) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(73, GET_AWAITABLE) + MAP_OP(74, LOAD_ASSERTION_ERROR) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(82, LIST_TO_TUPLE) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, SETUP_ANNOTATIONS) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, ROT_N_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(117, IS_OP_A) + MAP_OP(118, CONTAINS_OP_A) + MAP_OP(119, RERAISE_A) + MAP_OP(121, JUMP_IF_NOT_EXC_MATCH_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(129, GEN_START_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_EX_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) + MAP_OP(152, MATCH_CLASS_A) + MAP_OP(154, SETUP_ASYNC_WITH_A) + MAP_OP(155, FORMAT_VALUE_A) + MAP_OP(156, BUILD_CONST_KEY_MAP_A) + MAP_OP(157, BUILD_STRING_A) + MAP_OP(160, LOAD_METHOD_A) + MAP_OP(161, CALL_METHOD_A) + MAP_OP(162, LIST_EXTEND_A) + MAP_OP(163, SET_UPDATE_A) + MAP_OP(164, DICT_MERGE_A) + MAP_OP(165, DICT_UPDATE_A) +END_MAP() diff --git a/bytes/python_3_11.cpp b/bytes/python_3_11.cpp new file mode 100644 index 000000000..33b3ec09d --- /dev/null +++ b/bytes/python_3_11.cpp @@ -0,0 +1,114 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 11) + MAP_OP(0, CACHE) + MAP_OP(1, POP_TOP) + MAP_OP(2, PUSH_NULL) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(30, GET_LEN) + MAP_OP(31, MATCH_MAPPING) + MAP_OP(32, MATCH_SEQUENCE) + MAP_OP(33, MATCH_KEYS) + MAP_OP(35, PUSH_EXC_INFO) + MAP_OP(36, CHECK_EXC_MATCH) + MAP_OP(37, CHECK_EG_MATCH) + MAP_OP(49, WITH_EXCEPT_START) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(53, BEFORE_WITH) + MAP_OP(54, END_ASYNC_FOR) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(74, LOAD_ASSERTION_ERROR) + MAP_OP(75, RETURN_GENERATOR) + MAP_OP(82, LIST_TO_TUPLE) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, SETUP_ANNOTATIONS) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, ASYNC_GEN_WRAP) + MAP_OP(88, PREP_RERAISE_STAR) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, SWAP_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(114, POP_JUMP_FORWARD_IF_FALSE_A) + MAP_OP(115, POP_JUMP_FORWARD_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(117, IS_OP_A) + MAP_OP(118, CONTAINS_OP_A) + MAP_OP(119, RERAISE_A) + MAP_OP(120, COPY_A) + MAP_OP(122, BINARY_OP_A) + MAP_OP(123, SEND_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(128, POP_JUMP_FORWARD_IF_NOT_NONE_A) + MAP_OP(129, POP_JUMP_FORWARD_IF_NONE_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, GET_AWAITABLE_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, JUMP_BACKWARD_NO_INTERRUPT_A) + MAP_OP(135, MAKE_CELL_A) + MAP_OP(136, LOAD_CLOSURE_A) + MAP_OP(137, LOAD_DEREF_A) + MAP_OP(138, STORE_DEREF_A) + MAP_OP(139, DELETE_DEREF_A) + MAP_OP(140, JUMP_BACKWARD_A) + MAP_OP(142, CALL_FUNCTION_EX_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) + MAP_OP(149, COPY_FREE_VARS_A) + MAP_OP(151, RESUME_A) + MAP_OP(152, MATCH_CLASS_A) + MAP_OP(155, FORMAT_VALUE_A) + MAP_OP(156, BUILD_CONST_KEY_MAP_A) + MAP_OP(157, BUILD_STRING_A) + MAP_OP(160, LOAD_METHOD_A) + MAP_OP(162, LIST_EXTEND_A) + MAP_OP(163, SET_UPDATE_A) + MAP_OP(164, DICT_MERGE_A) + MAP_OP(165, DICT_UPDATE_A) + MAP_OP(166, PRECALL_A) + MAP_OP(171, CALL_A) + MAP_OP(172, KW_NAMES_A) + MAP_OP(173, POP_JUMP_BACKWARD_IF_NOT_NONE_A) + MAP_OP(174, POP_JUMP_BACKWARD_IF_NONE_A) + MAP_OP(175, POP_JUMP_BACKWARD_IF_FALSE_A) + MAP_OP(176, POP_JUMP_BACKWARD_IF_TRUE_A) +END_MAP() diff --git a/bytes/python_3_12.cpp b/bytes/python_3_12.cpp new file mode 100644 index 000000000..c990d3c71 --- /dev/null +++ b/bytes/python_3_12.cpp @@ -0,0 +1,133 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 12) + MAP_OP(0, CACHE) + MAP_OP(1, POP_TOP) + MAP_OP(2, PUSH_NULL) + MAP_OP(3, INTERPRETER_EXIT) + MAP_OP(4, END_FOR) + MAP_OP(5, END_SEND) + MAP_OP(9, NOP) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(17, RESERVED) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_SLICE) + MAP_OP(27, STORE_SLICE) + MAP_OP(30, GET_LEN) + MAP_OP(31, MATCH_MAPPING) + MAP_OP(32, MATCH_SEQUENCE) + MAP_OP(33, MATCH_KEYS) + MAP_OP(35, PUSH_EXC_INFO) + MAP_OP(36, CHECK_EXC_MATCH) + MAP_OP(37, CHECK_EG_MATCH) + MAP_OP(49, WITH_EXCEPT_START) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(53, BEFORE_WITH) + MAP_OP(54, END_ASYNC_FOR) + MAP_OP(55, CLEANUP_THROW) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(74, LOAD_ASSERTION_ERROR) + MAP_OP(75, RETURN_GENERATOR) + MAP_OP(83, RETURN_VALUE) + MAP_OP(85, SETUP_ANNOTATIONS) + MAP_OP(87, LOAD_LOCALS) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(99, SWAP_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(117, IS_OP_A) + MAP_OP(118, CONTAINS_OP_A) + MAP_OP(119, RERAISE_A) + MAP_OP(120, COPY_A) + MAP_OP(121, RETURN_CONST_A) + MAP_OP(122, BINARY_OP_A) + MAP_OP(123, SEND_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, LOAD_FAST_CHECK_A) + MAP_OP(128, POP_JUMP_IF_NOT_NONE_A) + MAP_OP(129, POP_JUMP_IF_NONE_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, GET_AWAITABLE_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, JUMP_BACKWARD_NO_INTERRUPT_A) + MAP_OP(135, MAKE_CELL_A) + MAP_OP(136, LOAD_CLOSURE_A) + MAP_OP(137, LOAD_DEREF_A) + MAP_OP(138, STORE_DEREF_A) + MAP_OP(139, DELETE_DEREF_A) + MAP_OP(140, JUMP_BACKWARD_A) + MAP_OP(141, LOAD_SUPER_ATTR_A) + MAP_OP(142, CALL_FUNCTION_EX_A) + MAP_OP(143, LOAD_FAST_AND_CLEAR_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(149, COPY_FREE_VARS_A) + MAP_OP(150, YIELD_VALUE_A) + MAP_OP(151, RESUME_A) + MAP_OP(152, MATCH_CLASS_A) + MAP_OP(155, FORMAT_VALUE_A) + MAP_OP(156, BUILD_CONST_KEY_MAP_A) + MAP_OP(157, BUILD_STRING_A) + MAP_OP(162, LIST_EXTEND_A) + MAP_OP(163, SET_UPDATE_A) + MAP_OP(164, DICT_MERGE_A) + MAP_OP(165, DICT_UPDATE_A) + MAP_OP(171, CALL_A) + MAP_OP(172, KW_NAMES_A) + MAP_OP(173, CALL_INTRINSIC_1_A) + MAP_OP(174, CALL_INTRINSIC_2_A) + MAP_OP(175, LOAD_FROM_DICT_OR_GLOBALS_A) + MAP_OP(176, LOAD_FROM_DICT_OR_DEREF_A) + MAP_OP(237, INSTRUMENTED_LOAD_SUPER_ATTR_A) + MAP_OP(238, INSTRUMENTED_POP_JUMP_IF_NONE_A) + MAP_OP(239, INSTRUMENTED_POP_JUMP_IF_NOT_NONE_A) + MAP_OP(240, INSTRUMENTED_RESUME_A) + MAP_OP(241, INSTRUMENTED_CALL_A) + MAP_OP(242, INSTRUMENTED_RETURN_VALUE_A) + MAP_OP(243, INSTRUMENTED_YIELD_VALUE_A) + MAP_OP(244, INSTRUMENTED_CALL_FUNCTION_EX_A) + MAP_OP(245, INSTRUMENTED_JUMP_FORWARD_A) + MAP_OP(246, INSTRUMENTED_JUMP_BACKWARD_A) + MAP_OP(247, INSTRUMENTED_RETURN_CONST_A) + MAP_OP(248, INSTRUMENTED_FOR_ITER_A) + MAP_OP(249, INSTRUMENTED_POP_JUMP_IF_FALSE_A) + MAP_OP(250, INSTRUMENTED_POP_JUMP_IF_TRUE_A) + MAP_OP(251, INSTRUMENTED_END_FOR_A) + MAP_OP(252, INSTRUMENTED_END_SEND_A) + MAP_OP(253, INSTRUMENTED_INSTRUCTION_A) + MAP_OP(254, INSTRUMENTED_LINE_A) +END_MAP() diff --git a/bytes/python_3_2.cpp b/bytes/python_3_2.cpp new file mode 100644 index 000000000..5c6a78b09 --- /dev/null +++ b/bytes/python_3_2.cpp @@ -0,0 +1,105 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 2) + MAP_OP(0, STOP_CODE) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(54, STORE_MAP) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, STORE_LOCALS) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) +END_MAP() diff --git a/bytes/python_3_3.cpp b/bytes/python_3_3.cpp new file mode 100644 index 000000000..b309a421f --- /dev/null +++ b/bytes/python_3_3.cpp @@ -0,0 +1,105 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 3) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(54, STORE_MAP) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, STORE_LOCALS) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) +END_MAP() diff --git a/bytes/python_3_4.cpp b/bytes/python_3_4.cpp new file mode 100644 index 000000000..786ee20da --- /dev/null +++ b/bytes/python_3_4.cpp @@ -0,0 +1,105 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 4) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(54, STORE_MAP) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) +END_MAP() diff --git a/bytes/python_3_5.cpp b/bytes/python_3_5.cpp new file mode 100644 index 000000000..2fc30986d --- /dev/null +++ b/bytes/python_3_5.cpp @@ -0,0 +1,118 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 5) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(16, BINARY_MATRIX_MULTIPLY) + MAP_OP(17, INPLACE_MATRIX_MULTIPLY) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(73, GET_AWAITABLE) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP_START) + MAP_OP(82, WITH_CLEANUP_FINISH) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(134, MAKE_CLOSURE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(140, CALL_FUNCTION_VAR_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_VAR_KW_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) + MAP_OP(149, BUILD_LIST_UNPACK_A) + MAP_OP(150, BUILD_MAP_UNPACK_A) + MAP_OP(151, BUILD_MAP_UNPACK_WITH_CALL_A) + MAP_OP(152, BUILD_TUPLE_UNPACK_A) + MAP_OP(153, BUILD_SET_UNPACK_A) + MAP_OP(154, SETUP_ASYNC_WITH_A) +END_MAP() diff --git a/bytes/python_3_6.cpp b/bytes/python_3_6.cpp new file mode 100644 index 000000000..fa9d430c7 --- /dev/null +++ b/bytes/python_3_6.cpp @@ -0,0 +1,122 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 6) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(16, BINARY_MATRIX_MULTIPLY) + MAP_OP(17, INPLACE_MATRIX_MULTIPLY) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(73, GET_AWAITABLE) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP_START) + MAP_OP(82, WITH_CLEANUP_FINISH) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, SETUP_ANNOTATIONS) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(127, STORE_ANNOTATION_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_EX_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) + MAP_OP(149, BUILD_LIST_UNPACK_A) + MAP_OP(150, BUILD_MAP_UNPACK_A) + MAP_OP(151, BUILD_MAP_UNPACK_WITH_CALL_A) + MAP_OP(152, BUILD_TUPLE_UNPACK_A) + MAP_OP(153, BUILD_SET_UNPACK_A) + MAP_OP(154, SETUP_ASYNC_WITH_A) + MAP_OP(155, FORMAT_VALUE_A) + MAP_OP(156, BUILD_CONST_KEY_MAP_A) + MAP_OP(157, BUILD_STRING_A) + MAP_OP(158, BUILD_TUPLE_UNPACK_WITH_CALL_A) +END_MAP() diff --git a/bytes/python_3_7.cpp b/bytes/python_3_7.cpp new file mode 100644 index 000000000..c52adac38 --- /dev/null +++ b/bytes/python_3_7.cpp @@ -0,0 +1,123 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 7) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(16, BINARY_MATRIX_MULTIPLY) + MAP_OP(17, INPLACE_MATRIX_MULTIPLY) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(73, GET_AWAITABLE) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(80, BREAK_LOOP) + MAP_OP(81, WITH_CLEANUP_START) + MAP_OP(82, WITH_CLEANUP_FINISH) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, SETUP_ANNOTATIONS) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(119, CONTINUE_LOOP_A) + MAP_OP(120, SETUP_LOOP_A) + MAP_OP(121, SETUP_EXCEPT_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_EX_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) + MAP_OP(149, BUILD_LIST_UNPACK_A) + MAP_OP(150, BUILD_MAP_UNPACK_A) + MAP_OP(151, BUILD_MAP_UNPACK_WITH_CALL_A) + MAP_OP(152, BUILD_TUPLE_UNPACK_A) + MAP_OP(153, BUILD_SET_UNPACK_A) + MAP_OP(154, SETUP_ASYNC_WITH_A) + MAP_OP(155, FORMAT_VALUE_A) + MAP_OP(156, BUILD_CONST_KEY_MAP_A) + MAP_OP(157, BUILD_STRING_A) + MAP_OP(158, BUILD_TUPLE_UNPACK_WITH_CALL_A) + MAP_OP(160, LOAD_METHOD_A) + MAP_OP(161, CALL_METHOD_A) +END_MAP() diff --git a/bytes/python_3_8.cpp b/bytes/python_3_8.cpp new file mode 100644 index 000000000..76ed41229 --- /dev/null +++ b/bytes/python_3_8.cpp @@ -0,0 +1,124 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 8) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(6, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(16, BINARY_MATRIX_MULTIPLY) + MAP_OP(17, INPLACE_MATRIX_MULTIPLY) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(53, BEGIN_FINALLY) + MAP_OP(54, END_ASYNC_FOR) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(73, GET_AWAITABLE) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(81, WITH_CLEANUP_START) + MAP_OP(82, WITH_CLEANUP_FINISH) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, SETUP_ANNOTATIONS) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(88, END_FINALLY) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_EX_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) + MAP_OP(149, BUILD_LIST_UNPACK_A) + MAP_OP(150, BUILD_MAP_UNPACK_A) + MAP_OP(151, BUILD_MAP_UNPACK_WITH_CALL_A) + MAP_OP(152, BUILD_TUPLE_UNPACK_A) + MAP_OP(153, BUILD_SET_UNPACK_A) + MAP_OP(154, SETUP_ASYNC_WITH_A) + MAP_OP(155, FORMAT_VALUE_A) + MAP_OP(156, BUILD_CONST_KEY_MAP_A) + MAP_OP(157, BUILD_STRING_A) + MAP_OP(158, BUILD_TUPLE_UNPACK_WITH_CALL_A) + MAP_OP(160, LOAD_METHOD_A) + MAP_OP(161, CALL_METHOD_A) + MAP_OP(162, CALL_FINALLY_A) + MAP_OP(163, POP_FINALLY_A) +END_MAP() diff --git a/bytes/python_3_9.cpp b/bytes/python_3_9.cpp new file mode 100644 index 000000000..f4ca606a7 --- /dev/null +++ b/bytes/python_3_9.cpp @@ -0,0 +1,123 @@ +#include "bytecode_map.h" + +BEGIN_MAP(3, 9) + MAP_OP(1, POP_TOP) + MAP_OP(2, ROT_TWO) + MAP_OP(3, ROT_THREE) + MAP_OP(4, DUP_TOP) + MAP_OP(5, DUP_TOP_TWO) + MAP_OP(6, ROT_FOUR) + MAP_OP(9, NOP) + MAP_OP(10, UNARY_POSITIVE) + MAP_OP(11, UNARY_NEGATIVE) + MAP_OP(12, UNARY_NOT) + MAP_OP(15, UNARY_INVERT) + MAP_OP(16, BINARY_MATRIX_MULTIPLY) + MAP_OP(17, INPLACE_MATRIX_MULTIPLY) + MAP_OP(19, BINARY_POWER) + MAP_OP(20, BINARY_MULTIPLY) + MAP_OP(22, BINARY_MODULO) + MAP_OP(23, BINARY_ADD) + MAP_OP(24, BINARY_SUBTRACT) + MAP_OP(25, BINARY_SUBSCR) + MAP_OP(26, BINARY_FLOOR_DIVIDE) + MAP_OP(27, BINARY_TRUE_DIVIDE) + MAP_OP(28, INPLACE_FLOOR_DIVIDE) + MAP_OP(29, INPLACE_TRUE_DIVIDE) + MAP_OP(48, RERAISE) + MAP_OP(49, WITH_EXCEPT_START) + MAP_OP(50, GET_AITER) + MAP_OP(51, GET_ANEXT) + MAP_OP(52, BEFORE_ASYNC_WITH) + MAP_OP(54, END_ASYNC_FOR) + MAP_OP(55, INPLACE_ADD) + MAP_OP(56, INPLACE_SUBTRACT) + MAP_OP(57, INPLACE_MULTIPLY) + MAP_OP(59, INPLACE_MODULO) + MAP_OP(60, STORE_SUBSCR) + MAP_OP(61, DELETE_SUBSCR) + MAP_OP(62, BINARY_LSHIFT) + MAP_OP(63, BINARY_RSHIFT) + MAP_OP(64, BINARY_AND) + MAP_OP(65, BINARY_XOR) + MAP_OP(66, BINARY_OR) + MAP_OP(67, INPLACE_POWER) + MAP_OP(68, GET_ITER) + MAP_OP(69, GET_YIELD_FROM_ITER) + MAP_OP(70, PRINT_EXPR) + MAP_OP(71, LOAD_BUILD_CLASS) + MAP_OP(72, YIELD_FROM) + MAP_OP(73, GET_AWAITABLE) + MAP_OP(74, LOAD_ASSERTION_ERROR) + MAP_OP(75, INPLACE_LSHIFT) + MAP_OP(76, INPLACE_RSHIFT) + MAP_OP(77, INPLACE_AND) + MAP_OP(78, INPLACE_XOR) + MAP_OP(79, INPLACE_OR) + MAP_OP(82, LIST_TO_TUPLE) + MAP_OP(83, RETURN_VALUE) + MAP_OP(84, IMPORT_STAR) + MAP_OP(85, SETUP_ANNOTATIONS) + MAP_OP(86, YIELD_VALUE) + MAP_OP(87, POP_BLOCK) + MAP_OP(89, POP_EXCEPT) + MAP_OP(90, STORE_NAME_A) + MAP_OP(91, DELETE_NAME_A) + MAP_OP(92, UNPACK_SEQUENCE_A) + MAP_OP(93, FOR_ITER_A) + MAP_OP(94, UNPACK_EX_A) + MAP_OP(95, STORE_ATTR_A) + MAP_OP(96, DELETE_ATTR_A) + MAP_OP(97, STORE_GLOBAL_A) + MAP_OP(98, DELETE_GLOBAL_A) + MAP_OP(100, LOAD_CONST_A) + MAP_OP(101, LOAD_NAME_A) + MAP_OP(102, BUILD_TUPLE_A) + MAP_OP(103, BUILD_LIST_A) + MAP_OP(104, BUILD_SET_A) + MAP_OP(105, BUILD_MAP_A) + MAP_OP(106, LOAD_ATTR_A) + MAP_OP(107, COMPARE_OP_A) + MAP_OP(108, IMPORT_NAME_A) + MAP_OP(109, IMPORT_FROM_A) + MAP_OP(110, JUMP_FORWARD_A) + MAP_OP(111, JUMP_IF_FALSE_OR_POP_A) + MAP_OP(112, JUMP_IF_TRUE_OR_POP_A) + MAP_OP(113, JUMP_ABSOLUTE_A) + MAP_OP(114, POP_JUMP_IF_FALSE_A) + MAP_OP(115, POP_JUMP_IF_TRUE_A) + MAP_OP(116, LOAD_GLOBAL_A) + MAP_OP(117, IS_OP_A) + MAP_OP(118, CONTAINS_OP_A) + MAP_OP(121, JUMP_IF_NOT_EXC_MATCH_A) + MAP_OP(122, SETUP_FINALLY_A) + MAP_OP(124, LOAD_FAST_A) + MAP_OP(125, STORE_FAST_A) + MAP_OP(126, DELETE_FAST_A) + MAP_OP(130, RAISE_VARARGS_A) + MAP_OP(131, CALL_FUNCTION_A) + MAP_OP(132, MAKE_FUNCTION_A) + MAP_OP(133, BUILD_SLICE_A) + MAP_OP(135, LOAD_CLOSURE_A) + MAP_OP(136, LOAD_DEREF_A) + MAP_OP(137, STORE_DEREF_A) + MAP_OP(138, DELETE_DEREF_A) + MAP_OP(141, CALL_FUNCTION_KW_A) + MAP_OP(142, CALL_FUNCTION_EX_A) + MAP_OP(143, SETUP_WITH_A) + MAP_OP(144, EXTENDED_ARG_A) + MAP_OP(145, LIST_APPEND_A) + MAP_OP(146, SET_ADD_A) + MAP_OP(147, MAP_ADD_A) + MAP_OP(148, LOAD_CLASSDEREF_A) + MAP_OP(154, SETUP_ASYNC_WITH_A) + MAP_OP(155, FORMAT_VALUE_A) + MAP_OP(156, BUILD_CONST_KEY_MAP_A) + MAP_OP(157, BUILD_STRING_A) + MAP_OP(160, LOAD_METHOD_A) + MAP_OP(161, CALL_METHOD_A) + MAP_OP(162, LIST_EXTEND_A) + MAP_OP(163, SET_UPDATE_A) + MAP_OP(164, DICT_MERGE_A) + MAP_OP(165, DICT_UPDATE_A) +END_MAP() diff --git a/pyc_code.cpp b/pyc_code.cpp index acc2eb892..2b57107be 100644 --- a/pyc_code.cpp +++ b/pyc_code.cpp @@ -2,6 +2,30 @@ #include "pyc_module.h" #include "data.h" +/* == Marshal structure for Code object == + 1.0 1.3 1.5 2.1 2.3 3.0 3.8 3.11 +argcount short short short long long long long +posonlyargc long long +kwonlyargc long long long +nlocals short short short long long long +stacksize short short long long long long +flags short short short long long long long +code Obj Obj Obj Obj Obj Obj Obj Obj +consts Obj Obj Obj Obj Obj Obj Obj Obj +names Obj Obj Obj Obj Obj Obj Obj Obj +varnames Obj Obj Obj Obj Obj Obj +freevars Obj Obj Obj Obj +cellvars Obj Obj Obj Obj +locals+names Obj +locals+kinds Obj +filename Obj Obj Obj Obj Obj Obj Obj Obj +name Obj Obj Obj Obj Obj Obj Obj Obj +qualname Obj +firstline short short long long long long +lntable Obj Obj Obj Obj Obj Obj +exceptiontable Obj +*/ + void PycCode::load(PycData* stream, PycModule* mod) { if (mod->verCompare(1, 3) >= 0 && mod->verCompare(2, 3) < 0) diff --git a/pyc_module.cpp b/pyc_module.cpp index d2227906c..6f430fab4 100644 --- a/pyc_module.cpp +++ b/pyc_module.cpp @@ -170,6 +170,12 @@ void PycModule::setVersion(unsigned int magic) m_unicode = true; break; + case MAGIC_3_12: + m_maj = 3; + m_min = 12; + m_unicode = true; + break; + /* Bad Magic detected */ default: m_maj = -1; @@ -185,7 +191,7 @@ bool PycModule::isSupportedVersion(int major, int minor) case 2: return (minor >= 0 && minor <= 7); case 3: - return (minor >= 0 && minor <= 11); + return (minor >= 0 && minor <= 12); default: return false; } diff --git a/pyc_module.h b/pyc_module.h index b3e52dbea..888099832 100644 --- a/pyc_module.h +++ b/pyc_module.h @@ -34,6 +34,7 @@ enum PycMagic { MAGIC_3_9 = 0x0A0D0D61, MAGIC_3_10 = 0x0A0D0D6F, MAGIC_3_11 = 0x0A0D0DA7, + MAGIC_3_12 = 0x0A0D0DCB, INVALID = 0, }; @@ -63,6 +64,11 @@ class PycModule { return (m_maj >= 3) || (m_code->flags() & PycCode::CO_FUTURE_UNICODE_LITERALS) != 0; } + bool internIsBytes() const + { + return (m_maj < 3) && (m_code->flags() & PycCode::CO_FUTURE_UNICODE_LITERALS) != 0; + } + PycRef code() const { return m_code; } void intern(PycRef str) { m_interns.emplace_back(std::move(str)); } diff --git a/pyc_object.h b/pyc_object.h index 19ca5743d..ade46c784 100644 --- a/pyc_object.h +++ b/pyc_object.h @@ -96,37 +96,37 @@ class PycObject { public: enum Type { // From the Python Marshallers - TYPE_NULL = '0', - TYPE_NONE = 'N', - TYPE_FALSE = 'F', - TYPE_TRUE = 'T', - TYPE_STOPITER = 'S', - TYPE_ELLIPSIS = '.', - TYPE_INT = 'i', - TYPE_INT64 = 'I', - TYPE_FLOAT = 'f', - TYPE_BINARY_FLOAT = 'g', - TYPE_COMPLEX = 'x', - TYPE_BINARY_COMPLEX = 'y', - TYPE_LONG = 'l', - TYPE_STRING = 's', - TYPE_INTERNED = 't', - TYPE_STRINGREF = 'R', - TYPE_OBREF = 'r', - TYPE_TUPLE = '(', - TYPE_LIST = '[', - TYPE_DICT = '{', - TYPE_CODE = 'c', - TYPE_CODE2 = 'C', // Used in Python 1.0 - 1.2 - TYPE_UNICODE = 'u', - TYPE_UNKNOWN = '?', - TYPE_SET = '<', - TYPE_FROZENSET = '>', - TYPE_ASCII = 'a', - TYPE_ASCII_INTERNED = 'A', - TYPE_SMALL_TUPLE = ')', - TYPE_SHORT_ASCII = 'z', - TYPE_SHORT_ASCII_INTERNED = 'Z', + TYPE_NULL = '0', // Python 1.0 -> + TYPE_NONE = 'N', // Python 1.0 -> + TYPE_FALSE = 'F', // Python 2.3 -> + TYPE_TRUE = 'T', // Python 2.3 -> + TYPE_STOPITER = 'S', // Python 2.2 -> + TYPE_ELLIPSIS = '.', // Python 1.4 -> + TYPE_INT = 'i', // Python 1.0 -> + TYPE_INT64 = 'I', // Python 1.5 - 3.3 + TYPE_FLOAT = 'f', // Python 1.0 -> + TYPE_BINARY_FLOAT = 'g', // Python 2.5 -> + TYPE_COMPLEX = 'x', // Python 1.4 -> + TYPE_BINARY_COMPLEX = 'y', // Python 2.5 -> + TYPE_LONG = 'l', // Python 1.0 -> + TYPE_STRING = 's', // Python 1.0 -> + TYPE_INTERNED = 't', // Python 2.4 - 2.7, 3.4 -> + TYPE_STRINGREF = 'R', // Python 2.4 - 2.7 + TYPE_OBREF = 'r', // Python 3.4 -> + TYPE_TUPLE = '(', // Python 1.0 -> + TYPE_LIST = '[', // Python 1.0 -> + TYPE_DICT = '{', // Python 1.0 -> + TYPE_CODE = 'c', // Python 1.3 -> + TYPE_CODE2 = 'C', // Python 1.0 - 1.2 + TYPE_UNICODE = 'u', // Python 1.6 -> + TYPE_UNKNOWN = '?', // Python 1.0 -> + TYPE_SET = '<', // Python 2.5 -> + TYPE_FROZENSET = '>', // Python 2.5 -> + TYPE_ASCII = 'a', // Python 3.4 -> + TYPE_ASCII_INTERNED = 'A', // Python 3.4 -> + TYPE_SMALL_TUPLE = ')', // Python 3.4 -> + TYPE_SHORT_ASCII = 'z', // Python 3.4 -> + TYPE_SHORT_ASCII_INTERNED = 'Z', // Python 3.4 -> }; PycObject(int type = TYPE_UNKNOWN) : m_refs(0), m_type(type) { } diff --git a/pyc_sequence.cpp b/pyc_sequence.cpp index 7aceac2fb..29406c712 100644 --- a/pyc_sequence.cpp +++ b/pyc_sequence.cpp @@ -54,8 +54,7 @@ void PycDict::load(PycData* stream, PycModule* mod) if (key == NULL) break; val = LoadObject(stream, mod); - m_keys.push_back(key); - m_values.push_back(val); + m_values.emplace_back(std::make_tuple(key, val)); } } @@ -65,48 +64,17 @@ bool PycDict::isEqual(PycRef obj) const return false; PycRef dictObj = obj.cast(); - if (m_size != dictObj->m_size) + if (m_values.size() != dictObj->m_values.size()) return false; - auto ki1 = m_keys.cbegin(); - auto ki2 = dictObj->m_keys.cbegin(); - while (ki1 != m_keys.cend()) { - if (!(*ki1)->isEqual(*ki2)) + auto it1 = m_values.cbegin(); + auto it2 = dictObj->m_values.cbegin(); + while (it1 != m_values.cend()) { + if (!std::get<0>(*it1)->isEqual(std::get<0>(*it2))) return false; - ++ki1, ++ki2; - } - - auto vi1 = m_values.cbegin(); - auto vi2 = dictObj->m_values.cbegin(); - while (vi1 != m_values.cend()) { - if (!(*vi1)->isEqual(*vi2)) + if (!std::get<1>(*it1)->isEqual(std::get<1>(*it2))) return false; - ++vi1, ++vi2; + ++it1, ++it2; } return true; } - -PycRef PycDict::get(PycRef key) const -{ - auto ki = m_keys.cbegin(); - auto vi = m_values.cbegin(); - while (ki != m_keys.cend()) { - if ((*ki)->isEqual(key)) - return *vi; - ++ki, ++vi; - } - return NULL; // Disassembly shouldn't get non-existent keys -} - -PycRef PycDict::get(int idx) const -{ - if (idx < 0) - throw std::out_of_range("Dict index out of range"); - - auto it = m_values.cbegin(); - while (idx-- && it != m_values.cend()) - ++it; - if (it == m_values.cend()) - throw std::out_of_range("Dict index out of range"); - return *it; -} diff --git a/pyc_sequence.h b/pyc_sequence.h index 521782a6f..64ff66ca5 100644 --- a/pyc_sequence.h +++ b/pyc_sequence.h @@ -2,6 +2,7 @@ #define _PYC_SEQUENCE_H #include "pyc_object.h" +#include #include class PycSequence : public PycObject { @@ -46,32 +47,27 @@ class PycList : public PycSimpleSequence { PycList(int type = TYPE_LIST) : PycSimpleSequence(type) { } }; -class PycDict : public PycSequence { +class PycSet : public PycSimpleSequence { public: - typedef std::vector> key_t; - typedef std::vector> value_t; + typedef PycSimpleSequence::value_t value_t; + PycSet(int type = TYPE_SET) : PycSimpleSequence(type) { } +}; + +class PycDict : public PycObject { +public: + typedef std::tuple, PycRef> item_t; + typedef std::vector value_t; - PycDict(int type = TYPE_DICT) : PycSequence(type) { } + PycDict(int type = TYPE_DICT) : PycObject(type) { } bool isEqual(PycRef obj) const override; void load(class PycData* stream, class PycModule* mod) override; - PycRef get(PycRef key) const; - const key_t& keys() const { return m_keys; } const value_t& values() const { return m_values; } - PycRef get(int idx) const override; - private: - key_t m_keys; value_t m_values; }; -class PycSet : public PycSimpleSequence { -public: - typedef PycSimpleSequence::value_t value_t; - PycSet(int type = TYPE_SET) : PycSimpleSequence(type) { } -}; - #endif diff --git a/pyc_string.cpp b/pyc_string.cpp index e43e1905c..5dd78065a 100644 --- a/pyc_string.cpp +++ b/pyc_string.cpp @@ -68,14 +68,14 @@ void PycString::print(std::ostream &pyc_output, PycModule* mod, bool triple, prefix = mod->strIsUnicode() ? 0 : 'u'; break; case PycObject::TYPE_INTERNED: + prefix = mod->internIsBytes() ? 'b' : 0; + break; case PycObject::TYPE_ASCII: case PycObject::TYPE_ASCII_INTERNED: case PycObject::TYPE_SHORT_ASCII: case PycObject::TYPE_SHORT_ASCII_INTERNED: - if (mod->majorVer() >= 3) - prefix = 0; - else - prefix = mod->strIsUnicode() ? 'b' : 0; + // These types don't exist until Python 3.4 + prefix = 0; break; default: throw std::runtime_error("Invalid string type"); @@ -130,7 +130,7 @@ void PycString::print(std::ostream &pyc_output, PycModule* mod, bool triple, // Unicode stored as UTF-8... Let the stream interpret it pyc_output << ch; } else { - formatted_print(pyc_output, "\\x%x", (ch & 0xFF)); + formatted_print(pyc_output, "\\x%02x", (ch & 0xFF)); } } else { if (!useQuotes && ch == '\'') diff --git a/pycdas.cpp b/pycdas.cpp index 1275f0070..ddc210b6a 100644 --- a/pycdas.cpp +++ b/pycdas.cpp @@ -142,6 +142,7 @@ void output_object(PycRef obj, PycModule* mod, int indent, bc_disasm(pyc_output, codeObj, mod, indent + 2, flags); if (mod->verCompare(1, 5) >= 0 && (flags & Pyc::DISASM_PYCODE_VERBOSE) != 0) { + iprintf(pyc_output, indent + 1, "First Line: %d\n", codeObj->firstLine()); iputs(pyc_output, indent + 1, "[Line Number Table]\n"); output_object(codeObj->lnTable().cast(), mod, indent + 2, flags, pyc_output); } @@ -183,14 +184,9 @@ void output_object(PycRef obj, PycModule* mod, int indent, case PycObject::TYPE_DICT: { iputs(pyc_output, indent, "{\n"); - PycDict::key_t keys = obj.cast()->keys(); - PycDict::value_t values = obj.cast()->values(); - PycDict::key_t::const_iterator ki = keys.begin(); - PycDict::value_t::const_iterator vi = values.begin(); - while (ki != keys.end()) { - output_object(*ki, mod, indent + 1, flags, pyc_output); - output_object(*vi, mod, indent + 2, flags, pyc_output); - ++ki, ++vi; + for (const auto& val : obj.cast()->values()) { + output_object(std::get<0>(val), mod, indent + 1, flags, pyc_output); + output_object(std::get<1>(val), mod, indent + 2, flags, pyc_output); } iputs(pyc_output, indent, "}\n"); } diff --git a/scripts/pymultic b/scripts/pymultic index 47ef24aea..c06cf4d68 100755 --- a/scripts/pymultic +++ b/scripts/pymultic @@ -30,11 +30,12 @@ PYVERS = { '3.4': '3.4.10', '3.5': '3.5.10', '3.6': '3.6.15', - '3.7': '3.7.16', - '3.8': '3.8.16', - '3.9': '3.9.16', - '3.10': '3.10.9', - '3.11': '3.11.1', + '3.7': '3.7.17', + '3.8': '3.8.18', + '3.9': '3.9.18', + '3.10': '3.10.13', + '3.11': '3.11.6', + '3.12': '3.12.0', } OLD_PYTHONS = ('1.0', '1.1', '1.2', '1.3', '1.4', '1.5') @@ -54,6 +55,7 @@ PYVER_CONTAINERS = { '3.9', '3.10', '3.11', + '3.12', } CONTAINER_EXES = ['podman', 'docker'] CONTAINER_EXE_EXTRA_ARGS = { diff --git a/tests/compiled/GEN_START.3.10.pyc b/tests/compiled/GEN_START.3.10.pyc new file mode 100644 index 000000000..bacb60900 Binary files /dev/null and b/tests/compiled/GEN_START.3.10.pyc differ diff --git a/tests/compiled/class_NODE_BINARY.3.9.pyc b/tests/compiled/class_NODE_BINARY.3.9.pyc new file mode 100644 index 000000000..1f2ccc100 Binary files /dev/null and b/tests/compiled/class_NODE_BINARY.3.9.pyc differ diff --git a/tests/compiled/simple_const.3.12.pyc b/tests/compiled/simple_const.3.12.pyc new file mode 100644 index 000000000..4f69d3738 Binary files /dev/null and b/tests/compiled/simple_const.3.12.pyc differ diff --git a/tests/input/GEN_START.py b/tests/input/GEN_START.py new file mode 100644 index 000000000..d4b2b354e --- /dev/null +++ b/tests/input/GEN_START.py @@ -0,0 +1,2 @@ +def GEN_START(): + yield 0 diff --git a/tests/input/class_NODE_BINARY.py b/tests/input/class_NODE_BINARY.py new file mode 100644 index 000000000..9d5c6138e --- /dev/null +++ b/tests/input/class_NODE_BINARY.py @@ -0,0 +1,3 @@ +import Test +class MyNet(Test.t): + pass diff --git a/tests/tokenized/GEN_START.txt b/tests/tokenized/GEN_START.txt new file mode 100644 index 000000000..8f5a3150f --- /dev/null +++ b/tests/tokenized/GEN_START.txt @@ -0,0 +1,3 @@ +def GEN_START ( ) : + +yield 0 diff --git a/tests/tokenized/class_NODE_BINARY.txt b/tests/tokenized/class_NODE_BINARY.txt new file mode 100644 index 000000000..71b397702 --- /dev/null +++ b/tests/tokenized/class_NODE_BINARY.txt @@ -0,0 +1,4 @@ +import Test +class MyNet ( Test . t ) : + +pass