This is the second stage of converting to wordcode (issue26647).
Proposed patch makes bytecodecode consisting of code units (16-bit words) instead of bytes. It includes following changes:
* Changes meaning of jump offsets. They counts not bytes, but code units. This extends the range addressed by short commands (from 256 bytes to 256 words) and simplifies ceval.c.
* Changes f_lasti, tb_lasti etc to count code units instead of bytes.
* Changes disassembler to show addresses in code units, not bytes.
* Refactores the code.
These changes break compatibility (already broken by switching to 16-bit bytecode). The first one breaks compatibility with compiled bytecode and needs incrementing the magic number. |