Add basic bytecode and disassembly support for Python 3.12

This commit is contained in:
Michael Hansen
2023-11-09 11:11:37 -08:00
parent b32f231e33
commit 9b384ad1fa
12 changed files with 456 additions and 189 deletions

View File

@@ -111,6 +111,13 @@ OPCODE(BEFORE_WITH)
OPCODE(RETURN_GENERATOR)
OPCODE(ASYNC_GEN_WRAP)
OPCODE(PREP_RERAISE_STAR)
OPCODE(INTERPRETER_EXIT)
OPCODE(END_FOR)
OPCODE(END_SEND)
OPCODE(RESERVED)
OPCODE(BINARY_SLICE)
OPCODE(STORE_SLICE)
OPCODE(CLEANUP_THROW)
/* Has parameter word */
OPCODE_A_FIRST(STORE_NAME)
@@ -224,3 +231,33 @@ 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(RETURN_CONST)
OPCODE_A(LOAD_FAST_CHECK)
OPCODE_A(POP_JUMP_IF_NOT_NONE)
OPCODE_A(POP_JUMP_IF_NONE)
OPCODE_A(LOAD_SUPER_ATTR)
OPCODE_A(LOAD_FAST_AND_CLEAR)
OPCODE_A(YIELD_VALUE)
OPCODE_A(CALL_INTRINSIC_1)
OPCODE_A(CALL_INTRINSIC_2)
OPCODE_A(LOAD_FROM_DICT_OR_GLOBALS)
OPCODE_A(LOAD_FROM_DICT_OR_DEREF)
OPCODE_A(INSTRUMENTED_LOAD_SUPER_ATTR)
OPCODE_A(INSTRUMENTED_POP_JUMP_IF_NONE)
OPCODE_A(INSTRUMENTED_POP_JUMP_IF_NOT_NONE)
OPCODE_A(INSTRUMENTED_RESUME)
OPCODE_A(INSTRUMENTED_CALL)
OPCODE_A(INSTRUMENTED_RETURN_VALUE)
OPCODE_A(INSTRUMENTED_YIELD_VALUE)
OPCODE_A(INSTRUMENTED_CALL_FUNCTION_EX)
OPCODE_A(INSTRUMENTED_JUMP_FORWARD)
OPCODE_A(INSTRUMENTED_JUMP_BACKWARD)
OPCODE_A(INSTRUMENTED_RETURN_CONST)
OPCODE_A(INSTRUMENTED_FOR_ITER)
OPCODE_A(INSTRUMENTED_POP_JUMP_IF_FALSE)
OPCODE_A(INSTRUMENTED_POP_JUMP_IF_TRUE)
OPCODE_A(INSTRUMENTED_END_FOR)
OPCODE_A(INSTRUMENTED_END_SEND)
OPCODE_A(INSTRUMENTED_INSTRUCTION)
OPCODE_A(INSTRUMENTED_LINE)