Irit Katriel <iritkatr...@gmail.com> added the comment:
> I don't think that it does, since oparg gets totally reassigned each time > we load a new instruction. EXTENDED_ARG actually needs to hack around > this by advancing the instruction itself, updating oparg, and jumping > straight into the next opcode. Right, it's like this: TARGET(EXTENDED_ARG) { int oldoparg = oparg; NEXTOPARG(); oparg |= oldoparg << 8; PRE_DISPATCH_GOTO(); DISPATCH_GOTO(); } It's seems correct (the next arg will be NOP so nothing happens). But it's wasteful. ---------- title: dis module incorrectly handles EXTENDED_ARG + NOP sequence -> compiler emits EXTENDED_ARG + NOP sequence in 3.10 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue45757> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com