From aacf182f956b0f3af39fc282f3836cf5f6bffba7 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Mon, 12 Apr 2021 11:03:36 -0700 Subject: [PATCH] Add bytecode documentation for 3.10 --- PythonBytecode.txt | 176 +++++++++++++++++++++++++++++++++++++++++++++ pyc_module.cpp | 3 +- 2 files changed, 178 insertions(+), 1 deletion(-) diff --git a/PythonBytecode.txt b/PythonBytecode.txt index 7b48bda..24625d5 100644 --- a/PythonBytecode.txt +++ b/PythonBytecode.txt @@ -538,6 +538,182 @@ DICT_UPDATE [ ] [ ] [ ] [ ] [ ] [ ] [ ] . + 3.10 +<0> [ ] +POP_TOP [X] +ROT_TWO [X] +ROT_THREE [X] +DUP_TOP [X] +DUP_TOP_TWO [X] +ROT_FOUR [X] +<7> [ ] +<8> [ ] +NOP [X] +UNARY_POSITIVE [X] +UNARY_NEGATIVE [X] +UNARY_NOT [X] +<13> [ ] +<14> [ ] +UNARY_INVERT [X] +BINARY_MATRIX_MULTIPLY [X] +INPLACE_MATRIX_MULTIPLY [X] +<18> [ ] +BINARY_POWER [X] +BINARY_MULTIPLY [X] +<21> [ ] +BINARY_MODULO [X] +BINARY_ADD [X] +BINARY_SUBTRACT [X] +BINARY_SUBSCR [X] +BINARY_FLOOR_DIVIDE [X] +BINARY_TRUE_DIVIDE [X] +INPLACE_FLOOR_DIVIDE [X] +INPLACE_TRUE_DIVIDE [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> [ ] +<48> [ ] +WITH_EXCEPT_START [X] +GET_AITER [X] +GET_ANEXT [X] +BEFORE_ASYNC_WITH [X] +<53> [ ] +END_ASYNC_FOR [X] +INPLACE_ADD [X] +INPLACE_SUBTRACT [X] +INPLACE_MULTIPLY [X] +<58> [ ] +INPLACE_MODULO [X] +STORE_SUBSCR [X] +DELETE_SUBSCR [X] +BINARY_LSHIFT [X] +BINARY_RSHIFT [X] +BINARY_AND [X] +BINARY_XOR [X] +BINARY_OR [X] +INPLACE_POWER [X] +GET_ITER [X] +GET_YIELD_FROM_ITER [X] +PRINT_EXPR [X] +LOAD_BUILD_CLASS [X] +YIELD_FROM [X] +GET_AWAITABLE [X] +LOAD_ASSERTION_ERROR [X] +INPLACE_LSHIFT [X] +INPLACE_RSHIFT [X] +INPLACE_AND [X] +INPLACE_XOR [X] +INPLACE_OR [X] +<80> [ ] +<81> [ ] +LIST_TO_TUPLE [X] +RETURN_VALUE [X] +IMPORT_STAR [X] +SETUP_ANNOTATIONS [X] +YIELD_VALUE [X] +POP_BLOCK [X] +<88> [ ] +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] +ROT_N [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] +JUMP_ABSOLUTE [X] +POP_JUMP_IF_FALSE [X] +POP_JUMP_IF_TRUE [X] +LOAD_GLOBAL [X] +IS_OP [X] +CONTAINS_OP [X] +RERAISE [X] +<120> [ ] +JUMP_IF_NOT_EXC_MATCH [X] +SETUP_FINALLY [X] +<123> [ ] +LOAD_FAST [X] +STORE_FAST [X] +DELETE_FAST [X] +<127> [ ] +<128> [ ] +GEN_START [X] +RAISE_VARARGS [X] +CALL_FUNCTION [X] +MAKE_FUNCTION [X] +BUILD_SLICE [X] +<134> [ ] +LOAD_CLOSURE [X] +LOAD_DEREF [X] +STORE_DEREF [X] +DELETE_DEREF [X] +<139> [ ] +<140> [ ] +CALL_FUNCTION_KW [X] +CALL_FUNCTION_EX [X] +SETUP_WITH [X] +EXTENDED_ARG [X] +LIST_APPEND [X] +SET_ADD [X] +MAP_ADD [X] +LOAD_CLASSDEREF [X] +<149> [ ] +<150> [ ] +<151> [ ] +MATCH_CLASS [X] +<153> [ ] +SETUP_ASYNC_WITH [X] +FORMAT_VALUE [X] +BUILD_CONST_KEY_MAP [X] +BUILD_STRING [X] +<158> [ ] +<159> [ ] +LOAD_METHOD [X] +CALL_METHOD [X] +LIST_EXTEND [X] +SET_UPDATE [X] +DICT_MERGE [X] +DICT_UPDATE [X] +<166> +<167> +<168> +<169> + . + . + . + + 1.0 1.3 1.4 1.5 1.6 TYPE_NULL '0' '0' '0' '0' '0' TYPE_NONE 'N' 'N' 'N' 'N' 'N' diff --git a/pyc_module.cpp b/pyc_module.cpp index 246122e..d9d52e5 100644 --- a/pyc_module.cpp +++ b/pyc_module.cpp @@ -157,12 +157,13 @@ void PycModule::setVersion(unsigned int magic) m_min = 9; m_unicode = true; break; - + case MAGIC_3_10: m_maj = 3; m_min = 10; m_unicode = true; break; + /* Bad Magic detected */ default: m_maj = -1;