1# (C) Copyright 2017, 2019-2020 by Rocky Bernstein 2""" 3CPython 2.3 bytecode opcodes 4 5This is a like Python 2.3's opcode.py with some additional classification 6of stack usage, and opererand formatting functions. 7""" 8 9import xdis.opcodes.opcode_2x as opcode_2x 10from xdis.opcodes.base import ( 11 extended_format_ATTR, 12 extended_format_CALL_FUNCTION, 13 extended_format_MAKE_FUNCTION_older, 14 extended_format_RAISE_VARARGS_older, 15 extended_format_RETURN_VALUE, 16 finalize_opcodes, 17 format_CALL_FUNCTION_pos_name_encoded, 18 format_MAKE_FUNCTION_default_argc, 19 format_RAISE_VARARGS_older, 20 format_extended_arg, 21 init_opdata, 22 update_pj2, 23) 24 25version = 2.3 26python_implementation = "CPython" 27 28l = locals() 29init_opdata(l, opcode_2x, version) 30 31update_pj2(globals(), l) 32 33opcode_arg_fmt = { 34 "CALL_FUNCTION": format_CALL_FUNCTION_pos_name_encoded, 35 "CALL_FUNCTION_KW": format_CALL_FUNCTION_pos_name_encoded, 36 "CALL_FUNCTION_VAR_KW": format_CALL_FUNCTION_pos_name_encoded, 37 "EXTENDED_ARG": format_extended_arg, 38 "MAKE_FUNCTION": format_MAKE_FUNCTION_default_argc, 39 "RAISE_VARARGS": format_RAISE_VARARGS_older, 40} 41 42opcode_extended_fmt = { 43 "CALL_FUNCTION": extended_format_CALL_FUNCTION, 44 "LOAD_ATTR": extended_format_ATTR, 45 "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, 46 "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, 47 "RETURN_VALUE": extended_format_RETURN_VALUE, 48 "STORE_ATTR": extended_format_ATTR, 49} 50 51finalize_opcodes(l) 52