Add Python 3.5 disassembly support
This commit is contained in:
@@ -9,9 +9,9 @@ if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
endif()
|
||||
|
||||
set(PYTHON_VERSIONS
|
||||
10 11 13 14 15 16 # Python 1.1 and 1.2 are marshall-identical
|
||||
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
|
||||
30 31 32 33 34 35
|
||||
)
|
||||
|
||||
foreach(ver ${PYTHON_VERSIONS})
|
||||
|
@@ -4,7 +4,7 @@ Python MAGIC Python MAGIC Python MAGIC
|
||||
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
|
||||
1.5 0x0A0D4E99 2.5 0x0A0DF2B3 3.5 0x0A0D0D16
|
||||
1.6 0x0A0DC4FC 2.6 0x0A0DF2D1
|
||||
2.7 0x0A0DF303
|
||||
|
||||
@@ -346,170 +346,173 @@ MAP_ADD [ ] [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
.
|
||||
|
||||
|
||||
3.0 3.1 3.2 3.3 3.4
|
||||
STOP_CODE [X] [X] [X] [ ] [ ]
|
||||
POP_TOP [X] [X] [X] [X] [X]
|
||||
ROT_TWO [X] [X] [X] [X] [X]
|
||||
ROT_THREE [X] [X] [X] [X] [X]
|
||||
DUP_TOP [X] [X] [X] [X] [X]
|
||||
ROT_FOUR ! [X] [X]
|
||||
DUP_TOP_TWO ! [X] [X] [X]
|
||||
<6> [ ] [ ] [ ] [ ] [ ]
|
||||
<7> [ ] [ ] [ ] [ ] [ ]
|
||||
<8> [ ] [ ] [ ] [ ] [ ]
|
||||
NOP [X] [X] [X] [X] [X]
|
||||
UNARY_POSITIVE [X] [X] [X] [X] [X]
|
||||
UNARY_NEGATIVE [X] [X] [X] [X] [X]
|
||||
UNARY_NOT [X] [X] [X] [X] [X]
|
||||
<13> [ ] [ ] [ ] [ ] [ ]
|
||||
<14> [ ] [ ] [ ] [ ] [ ]
|
||||
UNARY_INVERT [X] [X] [X] [X] [X]
|
||||
<16> [ ] [ ] [ ] [ ] [ ]
|
||||
SET_ADD [X] [ ] [ ] [ ] [ ]
|
||||
LIST_APPEND [X] [ ] [ ] [ ] [ ]
|
||||
BINARY_POWER [X] [X] [X] [X] [X]
|
||||
BINARY_MULTIPLY [X] [X] [X] [X] [X]
|
||||
<21> [ ] [ ] [ ] [ ] [ ]
|
||||
BINARY_MODULO [X] [X] [X] [X] [X]
|
||||
BINARY_ADD [X] [X] [X] [X] [X]
|
||||
BINARY_SUBTRACT [X] [X] [X] [X] [X]
|
||||
BINARY_SUBSCR [X] [X] [X] [X] [X]
|
||||
BINARY_FLOOR_DIVIDE [X] [X] [X] [X] [X]
|
||||
BINARY_TRUE_DIVIDE [X] [X] [X] [X] [X]
|
||||
INPLACE_FLOOR_DIVIDE [X] [X] [X] [X] [X]
|
||||
INPLACE_TRUE_DIVIDE [X] [X] [X] [X] [X]
|
||||
<30> [ ] [ ] [ ] [ ] [ ]
|
||||
<31> [ ] [ ] [ ] [ ] [ ]
|
||||
<32> [ ] [ ] [ ] [ ] [ ]
|
||||
<33> [ ] [ ] [ ] [ ] [ ]
|
||||
<34> [ ] [ ] [ ] [ ] [ ]
|
||||
<35> [ ] [ ] [ ] [ ] [ ]
|
||||
<36> [ ] [ ] [ ] [ ] [ ]
|
||||
<37> [ ] [ ] [ ] [ ] [ ]
|
||||
<38> [ ] [ ] [ ] [ ] [ ]
|
||||
<39> [ ] [ ] [ ] [ ] [ ]
|
||||
<40> [ ] [ ] [ ] [ ] [ ]
|
||||
<41> [ ] [ ] [ ] [ ] [ ]
|
||||
<42> [ ] [ ] [ ] [ ] [ ]
|
||||
<43> [ ] [ ] [ ] [ ] [ ]
|
||||
<44> [ ] [ ] [ ] [ ] [ ]
|
||||
<45> [ ] [ ] [ ] [ ] [ ]
|
||||
<46> [ ] [ ] [ ] [ ] [ ]
|
||||
<47> [ ] [ ] [ ] [ ] [ ]
|
||||
<48> [ ] [ ] [ ] [ ] [ ]
|
||||
<49> [ ] [ ] [ ] [ ] [ ]
|
||||
<50> [ ] [ ] [ ] [ ] [ ]
|
||||
<51> [ ] [ ] [ ] [ ] [ ]
|
||||
<52> [ ] [ ] [ ] [ ] [ ]
|
||||
<53> [ ] [ ] [ ] [ ] [ ]
|
||||
STORE_MAP [X] [X] [X] [X] [X]
|
||||
INPLACE_ADD [X] [X] [X] [X] [X]
|
||||
INPLACE_SUBTRACT [X] [X] [X] [X] [X]
|
||||
INPLACE_MULTIPLY [X] [X] [X] [X] [X]
|
||||
<58> [ ] [ ] [ ] [ ] [ ]
|
||||
INPLACE_MODULO [X] [X] [X] [X] [X]
|
||||
STORE_SUBSCR [X] [X] [X] [X] [X]
|
||||
DELETE_SUBSCR [X] [X] [X] [X] [X]
|
||||
BINARY_LSHIFT [X] [X] [X] [X] [X]
|
||||
BINARY_RSHIFT [X] [X] [X] [X] [X]
|
||||
BINARY_AND [X] [X] [X] [X] [X]
|
||||
BINARY_XOR [X] [X] [X] [X] [X]
|
||||
BINARY_OR [X] [X] [X] [X] [X]
|
||||
INPLACE_POWER [X] [X] [X] [X] [X]
|
||||
GET_ITER [X] [X] [X] [X] [X]
|
||||
STORE_LOCALS [X] [X] [X] [X] [ ]
|
||||
PRINT_EXPR [X] [X] [X] [X] [X]
|
||||
LOAD_BUILD_CLASS [X] [X] [X] [X] [X]
|
||||
YIELD_FROM [ ] [ ] [ ] [X] [X]
|
||||
<73> [ ] [ ] [ ] [ ] [ ]
|
||||
<74> [ ] [ ] [ ] [ ] [ ]
|
||||
INPLACE_LSHIFT [X] [X] [X] [X] [X]
|
||||
INPLACE_RSHIFT [X] [X] [X] [X] [X]
|
||||
INPLACE_AND [X] [X] [X] [X] [X]
|
||||
INPLACE_XOR [X] [X] [X] [X] [X]
|
||||
INPLACE_OR [X] [X] [X] [X] [X]
|
||||
BREAK_LOOP [X] [X] [X] [X] [X]
|
||||
WITH_CLEANUP [X] [X] [X] [X] [X]
|
||||
<82> [ ] [ ] [ ] [ ] [ ]
|
||||
RETURN_VALUE [X] [X] [X] [X] [X]
|
||||
IMPORT_STAR [X] [X] [X] [X] [X]
|
||||
<85> [ ] [ ] [ ] [ ] [ ]
|
||||
YIELD_VALUE [X] [X] [X] [X] [X]
|
||||
POP_BLOCK [X] [X] [X] [X] [X]
|
||||
END_FINALLY [X] [X] [X] [X] [X]
|
||||
POP_EXCEPT [X] [X] [X] [X] [X]
|
||||
STORE_NAME [X] [X] [X] [X] [X]
|
||||
DELETE_NAME [X] [X] [X] [X] [X]
|
||||
UNPACK_SEQUENCE [X] [X] [X] [X] [X]
|
||||
FOR_ITER [X] [X] [X] [X] [X]
|
||||
UNPACK_EX [X] [X] [X] [X] [X]
|
||||
STORE_ATTR [X] [X] [X] [X] [X]
|
||||
DELETE_ATTR [X] [X] [X] [X] [X]
|
||||
STORE_GLOBAL [X] [X] [X] [X] [X]
|
||||
DELETE_GLOBAL [X] [X] [X] [X] [X]
|
||||
DUP_TOPX [X] [X] [ ] [ ] [ ]
|
||||
LOAD_CONST [X] [X] [X] [X] [X]
|
||||
LOAD_NAME [X] [X] [X] [X] [X]
|
||||
BUILD_TUPLE [X] [X] [X] [X] [X]
|
||||
BUILD_LIST [X] [X] [X] [X] [X]
|
||||
BUILD_SET [X] [X] [X] [X] [X]
|
||||
BUILD_MAP [X] [X] [X] [X] [X]
|
||||
LOAD_ATTR [X] [X] [X] [X] [X]
|
||||
COMPARE_OP [X] [X] [X] [X] [X]
|
||||
IMPORT_NAME [X] [X] [X] [X] [X]
|
||||
IMPORT_FROM [X] [X] [X] [X] [X]
|
||||
JUMP_FORWARD [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]
|
||||
POP_JUMP_IF_FALSE [ ] [X] [X] [X] [X]
|
||||
POP_JUMP_IF_TRUE [ ] [X] [X] [X] [X]
|
||||
LOAD_GLOBAL [X] [X] [X] [X] [X]
|
||||
<117> [ ] [ ] [ ] [ ] [ ]
|
||||
<118> [ ] [ ] [ ] [ ] [ ]
|
||||
CONTINUE_LOOP [X] [X] [X] [X] [X]
|
||||
SETUP_LOOP [X] [X] [X] [X] [X]
|
||||
SETUP_EXCEPT [X] [X] [X] [X] [X]
|
||||
SETUP_FINALLY [X] [X] [X] [X] [X]
|
||||
<123> [ ] [ ] [ ] [ ] [ ]
|
||||
LOAD_FAST [X] [X] [X] [X] [X]
|
||||
STORE_FAST [X] [X] [X] [X] [X]
|
||||
DELETE_FAST [X] [X] [X] [X] [X]
|
||||
<127> [ ] [ ] [ ] [ ] [ ]
|
||||
<128> [ ] [ ] [ ] [ ] [ ]
|
||||
<129> [ ] [ ] [ ] [ ] [ ]
|
||||
RAISE_VARARGS [X] [X] [X] [X] [X]
|
||||
CALL_FUNCTION [X] [X] [X] [X] [X]
|
||||
MAKE_FUNCTION [X] [X] [X] [X] [X]
|
||||
BUILD_SLICE [X] [X] [X] [X] [X]
|
||||
MAKE_CLOSURE [X] [X] [X] [X] [X]
|
||||
LOAD_CLOSURE [X] [X] [X] [X] [X]
|
||||
LOAD_DEREF [X] [X] [X] [X] [X]
|
||||
STORE_DEREF [X] [X] [X] [X] [X]
|
||||
DELETE_DEREF [ ] [ ] [X] [X] [X]
|
||||
<139> [ ] [ ] [ ] [ ] [ ]
|
||||
CALL_FUNCTION_VAR [X] [X] [X] [X] [X]
|
||||
CALL_FUNCTION_KW [X] [X] [X] [X] [X]
|
||||
CALL_FUNCTION_VAR_KW [X] [X] [X] [X] [X]
|
||||
EXTENDED_ARG ! [X] [X]
|
||||
SETUP_WITH ! [X] [X] [X]
|
||||
<144> ! [ ] [ ]
|
||||
EXTENDED_ARG ! [X] [X] [X]
|
||||
LIST_APPEND [ ] [X] [X] [X] [X]
|
||||
SET_ADD [ ] [X] [X] [X] [X]
|
||||
MAP_ADD [ ] [X] [X] [X] [X]
|
||||
LOAD_CLASSDEREF [ ] [ ] [ ] [ ] [X]
|
||||
<149> [ ] [ ] [ ] [ ] [ ]
|
||||
<150> [ ] [ ] [ ] [ ] [ ]
|
||||
<151> [ ] [ ] [ ] [ ] [ ]
|
||||
<152> [ ] [ ] [ ] [ ] [ ]
|
||||
<153> [ ] [ ] [ ] [ ] [ ]
|
||||
<154> [ ] [ ] [ ] [ ] [ ]
|
||||
<155> [ ] [ ] [ ] [ ] [ ]
|
||||
<156> [ ] [ ] [ ] [ ] [ ]
|
||||
<157> [ ] [ ] [ ] [ ] [ ]
|
||||
<158> [ ] [ ] [ ] [ ] [ ]
|
||||
<159> [ ] [ ] [ ] [ ] [ ]
|
||||
3.0 3.1 3.2 3.3 3.4 3.5
|
||||
STOP_CODE [X] [X] [X] [ ] [ ] [ ]
|
||||
POP_TOP [X] [X] [X] [X] [X] [X]
|
||||
ROT_TWO [X] [X] [X] [X] [X] [X]
|
||||
ROT_THREE [X] [X] [X] [X] [X] [X]
|
||||
DUP_TOP [X] [X] [X] [X] [X] [X]
|
||||
ROT_FOUR ! [X] [X]
|
||||
DUP_TOP_TWO ! [X] [X] [X] [X]
|
||||
<6> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<7> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<8> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
NOP [X] [X] [X] [X] [X] [X]
|
||||
UNARY_POSITIVE [X] [X] [X] [X] [X] [X]
|
||||
UNARY_NEGATIVE [X] [X] [X] [X] [X] [X]
|
||||
UNARY_NOT [X] [X] [X] [X] [X] [X]
|
||||
<13> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<14> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
UNARY_INVERT [X] [X] [X] [X] [X] [X]
|
||||
BINARY_MATRIX_MULTIPLY [ ] [ ] [ ] [ ] [ ] [X]
|
||||
SET_ADD ! [X] [ ] [ ] [ ] [ ]
|
||||
INPLACE_MATRIX_MULTIPLY ! [X]
|
||||
LIST_APPEND [X] [ ] [ ] [ ] [ ] [ ]
|
||||
BINARY_POWER [X] [X] [X] [X] [X] [X]
|
||||
BINARY_MULTIPLY [X] [X] [X] [X] [X] [X]
|
||||
<21> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
BINARY_MODULO [X] [X] [X] [X] [X] [X]
|
||||
BINARY_ADD [X] [X] [X] [X] [X] [X]
|
||||
BINARY_SUBTRACT [X] [X] [X] [X] [X] [X]
|
||||
BINARY_SUBSCR [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]
|
||||
<30> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<31> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<32> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<33> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<34> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<35> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<36> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<37> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<38> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<39> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<40> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<41> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<42> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<43> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<44> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<45> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<46> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<47> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<48> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<49> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
GET_AITER [ ] [ ] [ ] [ ] [ ] [X]
|
||||
GET_ANEXT [ ] [ ] [ ] [ ] [ ] [X]
|
||||
BEFORE_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X]
|
||||
<53> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
STORE_MAP [X] [X] [X] [X] [X] [ ]
|
||||
INPLACE_ADD [X] [X] [X] [X] [X] [X]
|
||||
INPLACE_SUBTRACT [X] [X] [X] [X] [X] [X]
|
||||
INPLACE_MULTIPLY [X] [X] [X] [X] [X] [X]
|
||||
<58> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
INPLACE_MODULO [X] [X] [X] [X] [X] [X]
|
||||
STORE_SUBSCR [X] [X] [X] [X] [X] [X]
|
||||
DELETE_SUBSCR [X] [X] [X] [X] [X] [X]
|
||||
BINARY_LSHIFT [X] [X] [X] [X] [X] [X]
|
||||
BINARY_RSHIFT [X] [X] [X] [X] [X] [X]
|
||||
BINARY_AND [X] [X] [X] [X] [X] [X]
|
||||
BINARY_XOR [X] [X] [X] [X] [X] [X]
|
||||
BINARY_OR [X] [X] [X] [X] [X] [X]
|
||||
INPLACE_POWER [X] [X] [X] [X] [X] [X]
|
||||
GET_ITER [X] [X] [X] [X] [X] [X]
|
||||
STORE_LOCALS ! [X] [X] [X] [X] [ ]
|
||||
GET_YIELD_FROM_ITER ! [X]
|
||||
PRINT_EXPR [X] [X] [X] [X] [X] [X]
|
||||
LOAD_BUILD_CLASS [X] [X] [X] [X] [X] [X]
|
||||
YIELD_FROM [ ] [ ] [ ] [X] [X] [X]
|
||||
GET_AWAITABLE [ ] [ ] [ ] [ ] [ ] [X]
|
||||
<74> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
INPLACE_LSHIFT [X] [X] [X] [X] [X] [X]
|
||||
INPLACE_RSHIFT [X] [X] [X] [X] [X] [X]
|
||||
INPLACE_AND [X] [X] [X] [X] [X] [X]
|
||||
INPLACE_XOR [X] [X] [X] [X] [X] [X]
|
||||
INPLACE_OR [X] [X] [X] [X] [X] [X]
|
||||
BREAK_LOOP [X] [X] [X] [X] [X] [X]
|
||||
WITH_CLEANUP ! [X] [X] [X] [X] [X]
|
||||
WITH_CLEANUP_START ! [X]
|
||||
WITH_CLEANUP_FINISH [ ] [ ] [ ] [ ] [ ] [X]
|
||||
RETURN_VALUE [X] [X] [X] [X] [X] [X]
|
||||
IMPORT_STAR [X] [X] [X] [X] [X] [X]
|
||||
<85> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
YIELD_VALUE [X] [X] [X] [X] [X] [X]
|
||||
POP_BLOCK [X] [X] [X] [X] [X] [X]
|
||||
END_FINALLY [X] [X] [X] [X] [X] [X]
|
||||
POP_EXCEPT [X] [X] [X] [X] [X] [X]
|
||||
STORE_NAME [X] [X] [X] [X] [X] [X]
|
||||
DELETE_NAME [X] [X] [X] [X] [X] [X]
|
||||
UNPACK_SEQUENCE [X] [X] [X] [X] [X] [X]
|
||||
FOR_ITER [X] [X] [X] [X] [X] [X]
|
||||
UNPACK_EX [X] [X] [X] [X] [X] [X]
|
||||
STORE_ATTR [X] [X] [X] [X] [X] [X]
|
||||
DELETE_ATTR [X] [X] [X] [X] [X] [X]
|
||||
STORE_GLOBAL [X] [X] [X] [X] [X] [X]
|
||||
DELETE_GLOBAL [X] [X] [X] [X] [X] [X]
|
||||
DUP_TOPX [X] [X] [ ] [ ] [ ] [ ]
|
||||
LOAD_CONST [X] [X] [X] [X] [X] [X]
|
||||
LOAD_NAME [X] [X] [X] [X] [X] [X]
|
||||
BUILD_TUPLE [X] [X] [X] [X] [X] [X]
|
||||
BUILD_LIST [X] [X] [X] [X] [X] [X]
|
||||
BUILD_SET [X] [X] [X] [X] [X] [X]
|
||||
BUILD_MAP [X] [X] [X] [X] [X] [X]
|
||||
LOAD_ATTR [X] [X] [X] [X] [X] [X]
|
||||
COMPARE_OP [X] [X] [X] [X] [X] [X]
|
||||
IMPORT_NAME [X] [X] [X] [X] [X] [X]
|
||||
IMPORT_FROM [X] [X] [X] [X] [X] [X]
|
||||
JUMP_FORWARD [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]
|
||||
POP_JUMP_IF_FALSE [ ] [X] [X] [X] [X] [X]
|
||||
POP_JUMP_IF_TRUE [ ] [X] [X] [X] [X] [X]
|
||||
LOAD_GLOBAL [X] [X] [X] [X] [X] [X]
|
||||
<117> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<118> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
CONTINUE_LOOP [X] [X] [X] [X] [X] [X]
|
||||
SETUP_LOOP [X] [X] [X] [X] [X] [X]
|
||||
SETUP_EXCEPT [X] [X] [X] [X] [X] [X]
|
||||
SETUP_FINALLY [X] [X] [X] [X] [X] [X]
|
||||
<123> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
LOAD_FAST [X] [X] [X] [X] [X] [X]
|
||||
STORE_FAST [X] [X] [X] [X] [X] [X]
|
||||
DELETE_FAST [X] [X] [X] [X] [X] [X]
|
||||
<127> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<128> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<129> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
RAISE_VARARGS [X] [X] [X] [X] [X] [X]
|
||||
CALL_FUNCTION [X] [X] [X] [X] [X] [X]
|
||||
MAKE_FUNCTION [X] [X] [X] [X] [X] [X]
|
||||
BUILD_SLICE [X] [X] [X] [X] [X] [X]
|
||||
MAKE_CLOSURE [X] [X] [X] [X] [X] [X]
|
||||
LOAD_CLOSURE [X] [X] [X] [X] [X] [X]
|
||||
LOAD_DEREF [X] [X] [X] [X] [X] [X]
|
||||
STORE_DEREF [X] [X] [X] [X] [X] [X]
|
||||
DELETE_DEREF [ ] [ ] [X] [X] [X] [X]
|
||||
<139> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
CALL_FUNCTION_VAR [X] [X] [X] [X] [X] [X]
|
||||
CALL_FUNCTION_KW [X] [X] [X] [X] [X] [X]
|
||||
CALL_FUNCTION_VAR_KW [X] [X] [X] [X] [X] [X]
|
||||
EXTENDED_ARG ! [X] [X]
|
||||
SETUP_WITH ! [X] [X] [X] [X]
|
||||
<144> ! [ ] [ ]
|
||||
EXTENDED_ARG ! [X] [X] [X] [X]
|
||||
LIST_APPEND [ ] [X] [X] [X] [X] [X]
|
||||
SET_ADD [ ] [X] [X] [X] [X] [X]
|
||||
MAP_ADD [ ] [X] [X] [X] [X] [X]
|
||||
LOAD_CLASSDEREF [ ] [ ] [ ] [ ] [X] [X]
|
||||
BUILD_LIST_UNPACK [ ] [ ] [ ] [ ] [ ] [X]
|
||||
BUILD_MAP_UNPACK [ ] [ ] [ ] [ ] [ ] [X]
|
||||
BUILD_MAP_UNPACK_WITH_CALL [ ] [ ] [ ] [ ] [ ] [X]
|
||||
BUILD_TUPLE_UNPACK [ ] [ ] [ ] [ ] [ ] [X]
|
||||
BUILD_SET_UNPACK [ ] [ ] [ ] [ ] [ ] [X]
|
||||
SETUP_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X]
|
||||
<155> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<156> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<157> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<158> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
<159> [ ] [ ] [ ] [ ] [ ] [ ]
|
||||
.
|
||||
.
|
||||
.
|
||||
@@ -560,36 +563,36 @@ TYPE_SET '<' '<'
|
||||
TYPE_FROZENSET '>' '>' '>'
|
||||
|
||||
|
||||
3.0 3.1 3.2 3.3 3.4
|
||||
TYPE_NULL '0' '0' '0' '0' '0'
|
||||
TYPE_NONE 'N' 'N' 'N' 'N' 'N'
|
||||
TYPE_FALSE 'F' 'F' 'F' 'F' 'F'
|
||||
TYPE_TRUE 'T' 'T' 'T' 'T' 'T'
|
||||
TYPE_STOPITER 'S' 'S' 'S' 'S' 'S'
|
||||
TYPE_ELLIPSIS '.' '.' '.' '.' '.'
|
||||
TYPE_INT 'i' 'i' 'i' 'i' 'i'
|
||||
3.0 3.1 3.2 3.3 3.4 3.5
|
||||
TYPE_NULL '0' '0' '0' '0' '0' '0'
|
||||
TYPE_NONE 'N' 'N' 'N' 'N' 'N' 'N'
|
||||
TYPE_FALSE 'F' 'F' 'F' 'F' 'F' 'F'
|
||||
TYPE_TRUE 'T' 'T' 'T' 'T' 'T' 'T'
|
||||
TYPE_STOPITER 'S' 'S' 'S' 'S' 'S' 'S'
|
||||
TYPE_ELLIPSIS '.' '.' '.' '.' '.' '.'
|
||||
TYPE_INT 'i' 'i' 'i' 'i' 'i' 'i'
|
||||
TYPE_INT64 'I' 'I' 'I' 'I'
|
||||
TYPE_FLOAT 'f' 'f' 'f' 'f' 'f'
|
||||
TYPE_BINARY_FLOAT 'g' 'g' 'g' 'g' 'g'
|
||||
TYPE_COMPLEX 'x' 'x' 'x' 'x' 'x'
|
||||
TYPE_BINARY_COMPLEX 'y' 'y' 'y' 'y' 'y'
|
||||
TYPE_LONG 'l' 'l' 'l' 'l' 'l'
|
||||
TYPE_STRING 's' 's' 's' 's' 's'
|
||||
TYPE_INTERNED 't'
|
||||
TYPE_REF '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 '>' '>' '>' '>' '>'
|
||||
TYPE_ASCII 'a'
|
||||
TYPE_ASCII_INTERNED 'A'
|
||||
TYPE_SMALL_TUPLE ')'
|
||||
TYPE_SHORT_ASCII 'z'
|
||||
TYPE_SHORT_ASCII_INTERNED 'Z'
|
||||
TYPE_FLOAT 'f' 'f' 'f' 'f' 'f' 'f'
|
||||
TYPE_BINARY_FLOAT 'g' 'g' 'g' 'g' 'g' 'g'
|
||||
TYPE_COMPLEX 'x' 'x' 'x' 'x' 'x' 'x'
|
||||
TYPE_BINARY_COMPLEX 'y' 'y' 'y' 'y' 'y' 'y'
|
||||
TYPE_LONG 'l' 'l' 'l' 'l' 'l' 'l'
|
||||
TYPE_STRING 's' 's' 's' 's' 's' 's'
|
||||
TYPE_INTERNED 't' 't'
|
||||
TYPE_REF 'r' 'r'
|
||||
TYPE_TUPLE '(' '(' '(' '(' '(' '('
|
||||
TYPE_LIST '[' '[' '[' '[' '[' '['
|
||||
TYPE_DICT '{' '{' '{' '{' '{' '{'
|
||||
TYPE_CODE 'c' 'c' 'c' 'c' 'c' 'c'
|
||||
TYPE_UNICODE 'u' 'u' 'u' 'u' 'u' 'u'
|
||||
TYPE_UNKNOWN '?' '?' '?' '?' '?' '?'
|
||||
TYPE_SET '<' '<' '<' '<' '<' '<'
|
||||
TYPE_FROZENSET '>' '>' '>' '>' '>' '>'
|
||||
TYPE_ASCII 'a' 'a'
|
||||
TYPE_ASCII_INTERNED 'A' 'A'
|
||||
TYPE_SMALL_TUPLE ')' ')'
|
||||
TYPE_SHORT_ASCII 'z' 'z'
|
||||
TYPE_SHORT_ASCII_INTERNED 'Z' 'Z'
|
||||
|
||||
|
||||
[TYPE_CODE] 1.0 1.3 1.5 2.1 2.3 3.0
|
||||
|
18
bytecode.cpp
18
bytecode.cpp
@@ -28,6 +28,7 @@ DECLARE_PYTHON(3, 1)
|
||||
DECLARE_PYTHON(3, 2)
|
||||
DECLARE_PYTHON(3, 3)
|
||||
DECLARE_PYTHON(3, 4)
|
||||
DECLARE_PYTHON(3, 5)
|
||||
|
||||
const char* Pyc::OpcodeName(int opcode)
|
||||
{
|
||||
@@ -49,8 +50,11 @@ const char* Pyc::OpcodeName(int opcode)
|
||||
"INPLACE_MULTIPLY", "INPLACE_DIVIDE", "INPLACE_MODULO", "INPLACE_POWER",
|
||||
"GET_ITER", "PRINT_ITEM_TO", "PRINT_NEWLINE_TO", "INPLACE_LSHIFT",
|
||||
"INPLACE_RSHIFT", "INPLACE_AND", "INPLACE_XOR", "INPLACE_OR",
|
||||
"WITH_CLEANUP", "IMPORT_STAR", "YIELD_VALUE", "LOAD_BUILD_CLASS",
|
||||
"STORE_LOCALS", "POP_EXCEPT", "SET_ADD", "YIELD_FROM",
|
||||
"WITH_CLEANUP", "WITH_CLEANUP_START", "WITH_CLEANUP_FINISH", "IMPORT_STAR",
|
||||
"YIELD_VALUE", "LOAD_BUILD_CLASS", "STORE_LOCALS", "POP_EXCEPT", "SET_ADD",
|
||||
"YIELD_FROM", "BINARY_MATRIX_MULTIPLY", "INPLACE_MATRIX_MULTIPLY",
|
||||
"GET_AITER", "GET_ANEXT", "BEFORE_ASYNC_WITH", "GET_YEILD_FROM_ITER",
|
||||
"GET_AWAITABLE",
|
||||
|
||||
"STORE_NAME", "DELETE_NAME", "UNPACK_TUPLE", "UNPACK_LIST", "UNPACK_ARG",
|
||||
"STORE_ATTR", "DELETE_ATTR", "STORE_GLOBAL", "DELETE_GLOBAL",
|
||||
@@ -66,9 +70,16 @@ const char* Pyc::OpcodeName(int opcode)
|
||||
"POP_JUMP_IF_FALSE", "POP_JUMP_IF_TRUE", "CONTINUE_LOOP", "MAKE_CLOSURE",
|
||||
"LOAD_CLOSURE", "LOAD_DEREF", "STORE_DEREF", "DELETE_DEREF",
|
||||
"EXTENDED_ARG", "SETUP_WITH", "SET_ADD", "MAP_ADD", "UNPACK_EX",
|
||||
"LIST_APPEND", "LOAD_CLASSDEREF",
|
||||
"LIST_APPEND", "LOAD_CLASSDEREF", "BUILD_LIST_UNPACK", "BUILD_MAP_UNPACK",
|
||||
"BUILD_MAP_UNPACK_WITH_CALL", "BUILD_TUPLE_UNPACK", "BUILD_SET_UNPACK",
|
||||
"SETUP_ASYNC_WITH",
|
||||
};
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
static_assert(sizeof(opcode_names) / sizeof(opcode_names[0]) == PYC_LAST_OPCODE,
|
||||
"Pyc::OpcodeName opcode_names not in sync with opcode enum");
|
||||
#endif
|
||||
|
||||
if (opcode < 0)
|
||||
return "<INVALID>";
|
||||
|
||||
@@ -112,6 +123,7 @@ int Pyc::ByteToOpcode(int maj, int min, int 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);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
10
bytecode.h
10
bytecode.h
@@ -22,8 +22,10 @@ enum Opcode {
|
||||
INPLACE_MULTIPLY, INPLACE_DIVIDE, INPLACE_MODULO, INPLACE_POWER,
|
||||
GET_ITER, PRINT_ITEM_TO, PRINT_NEWLINE_TO, INPLACE_LSHIFT,
|
||||
INPLACE_RSHIFT, INPLACE_AND, INPLACE_XOR, INPLACE_OR, WITH_CLEANUP,
|
||||
IMPORT_STAR, YIELD_VALUE, LOAD_BUILD_CLASS, STORE_LOCALS,
|
||||
POP_EXCEPT, SET_ADD, YIELD_FROM,
|
||||
WITH_CLEANUP_START, WITH_CLEANUP_FINISH, IMPORT_STAR, YIELD_VALUE,
|
||||
LOAD_BUILD_CLASS, STORE_LOCALS, POP_EXCEPT, SET_ADD, YIELD_FROM,
|
||||
BINARY_MATRIX_MULTIPLY, INPLACE_MATRIX_MULTIPLY, GET_AITER, GET_ANEXT,
|
||||
BEFORE_ASYNC_WITH, GET_YIELD_FROM_ITER, GET_AWAITABLE,
|
||||
|
||||
/* Has parameter word */
|
||||
PYC_HAVE_ARG,
|
||||
@@ -42,7 +44,9 @@ enum Opcode {
|
||||
POP_JUMP_IF_FALSE_A, POP_JUMP_IF_TRUE_A, CONTINUE_LOOP_A, MAKE_CLOSURE_A,
|
||||
LOAD_CLOSURE_A, LOAD_DEREF_A, STORE_DEREF_A, DELETE_DEREF_A,
|
||||
EXTENDED_ARG_A, SETUP_WITH_A, SET_ADD_A, MAP_ADD_A, UNPACK_EX_A,
|
||||
LIST_APPEND_A, LOAD_CLASSDEREF_A,
|
||||
LIST_APPEND_A, LOAD_CLASSDEREF_A, BUILD_LIST_UNPACK_A, BUILD_MAP_UNPACK_A,
|
||||
BUILD_MAP_UNPACK_WITH_CALL_A, BUILD_TUPLE_UNPACK_A, BUILD_SET_UNPACK_A,
|
||||
SETUP_ASYNC_WITH_A,
|
||||
|
||||
PYC_LAST_OPCODE,
|
||||
PYC_INVALID_OPCODE = -1,
|
||||
|
@@ -25,9 +25,9 @@ if len(sys.argv) != 3:
|
||||
if not os.path.exists(sys.argv[2]):
|
||||
os.mkdir(sys.argv[2])
|
||||
|
||||
maplist = [ 10, 11, 13, 14, 15, 16,
|
||||
maplist = [ 10, 11, 13, 14, 15, 16,
|
||||
20, 21, 22, 23, 24, 25, 26, 27,
|
||||
30, 31, 32, 33, 34 ]
|
||||
30, 31, 32, 33, 34, 35 ]
|
||||
|
||||
for mapver in maplist:
|
||||
infile = open(os.path.join(sys.argv[1], 'python_%d.map' % mapver), 'rt')
|
||||
|
@@ -15,6 +15,8 @@ public:
|
||||
CO_NESTED = 0x10,
|
||||
CO_GENERATOR = 0x20,
|
||||
CO_NOFREE = 0x40,
|
||||
CO_COROUTINE = 0x80,
|
||||
CO_ITERABLE_COROUTINE = 0x100,
|
||||
CO_GENERATOR_ALLOWED = 0x1000,
|
||||
CO_FUTURE_DIVISION = 0x2000,
|
||||
CO_FUTURE_ABSOLUTE_IMPORT = 0x4000,
|
||||
@@ -22,6 +24,7 @@ public:
|
||||
CO_FUTURE_PRINT_FUNCTION = 0x10000,
|
||||
CO_FUTURE_UNICODE_LITERALS = 0x20000,
|
||||
CO_FUTURE_BARRY_AS_BDFL = 0x40000,
|
||||
CO_FUTURE_GENERATOR_STOP = 0x80000,
|
||||
};
|
||||
|
||||
PycCode(int type = TYPE_CODE)
|
||||
|
@@ -124,6 +124,12 @@ void PycModule::setVersion(unsigned int magic)
|
||||
m_unicode = true;
|
||||
break;
|
||||
|
||||
case MAGIC_3_5:
|
||||
m_maj = 3;
|
||||
m_min = 5;
|
||||
m_unicode = true;
|
||||
break;
|
||||
|
||||
/* Bad Magic detected */
|
||||
default:
|
||||
m_maj = -1;
|
||||
|
@@ -26,6 +26,7 @@ enum PycMagic {
|
||||
MAGIC_3_2 = 0x0A0D0C6C,
|
||||
MAGIC_3_3 = 0x0A0D0C9E,
|
||||
MAGIC_3_4 = 0x0A0D0CEE,
|
||||
MAGIC_3_5 = 0x0A0D0D16,
|
||||
};
|
||||
|
||||
#define PYC_VERSION(maj, min) MAGIC_##maj##_##min
|
||||
|
13
pycdas.cpp
13
pycdas.cpp
@@ -13,14 +13,15 @@
|
||||
|
||||
static const char* flag_names[] = {
|
||||
"CO_OPTIMIZED", "CO_NEWLOCALS", "CO_VARARGS", "CO_VARKEYWORDS",
|
||||
"CO_NESTED", "CO_GENERATOR", "CO_NOFREE", "<0x80>", "<0x100>", "<0x200>",
|
||||
"<0x400>", "<0x800>", "CO_GENERATOR_ALLOWED", "CO_FUTURE_DIVISION",
|
||||
"CO_NESTED", "CO_GENERATOR", "CO_NOFREE", "CO_COROUTINE",
|
||||
"CO_ITERABLE_COROUTINE", "<0x200>", "<0x400>", "<0x800>",
|
||||
"CO_GENERATOR_ALLOWED", "CO_FUTURE_DIVISION",
|
||||
"CO_FUTURE_ABSOLUTE_IMPORT", "CO_FUTURE_WITH_STATEMENT",
|
||||
"CO_FUTURE_PRINT_FUNCTION", "CO_FUTURE_UNICODE_LITERALS",
|
||||
"CO_FUTURE_BARRY_AS_BDFL", "<0x80000>", "<0x100000>", "<0x200000>",
|
||||
"<0x400000>", "<0x800000>", "<0x1000000>", "<0x2000000>", "<0x4000000>",
|
||||
"<0x8000000>", "<0x10000000>", "<0x20000000>", "<0x40000000>",
|
||||
"<0x80000000>"
|
||||
"CO_FUTURE_BARRY_AS_BDFL", "CO_FUTURE_GENERATOR_STOP",
|
||||
"<0x100000>", "<0x200000>", "<0x400000>", "<0x800000>",
|
||||
"<0x1000000>", "<0x2000000>", "<0x4000000>", "<0x8000000>",
|
||||
"<0x10000000>", "<0x20000000>", "<0x40000000>", "<0x80000000>"
|
||||
};
|
||||
|
||||
static void print_coflags(unsigned long flags)
|
||||
|
Reference in New Issue
Block a user