python / cpython

The Python programming language
https://www.python.org/
Other
60.06k stars 29.08k forks source link

Add `INSTRUCTION_SIZE` macro to code generator. #118423

Open markshannon opened 3 weeks ago

markshannon commented 3 weeks ago

In bytecodes.c we use both next_instr - this_instr and 1 + INLINE_CACHE_ENTRIES_... to mean "instruction length". We should add a macro for the purpose that is understood by the code generator.

Examples

The somewhat confusing LOAD_IP(1 + INLINE_CACHE_ENTRIES_SEND); would become LOAD_IP(INSTRUCTION_LENGTH)

frame->return_offset = (uint16_t)(next_instr - this_instr); would become frame->return_offset = INSTRUCTION_LENGTH; which is both easier to understand and wouldn't be rejected as tier 2 code.