[Python-Dev] Unexpected bytecode difference

Alexander Belopolsky alexander.belopolsky at gmail.com
Mon Jan 22 13:09:36 EST 2018

On Fri, Jan 19, 2018 at 7:18 PM, Victor Stinner
<victor.stinner at gmail.com> wrote:
> It seems like the EXTENDED_ARG doc wasn't updated.

I've opened <https://bugs.python.org/issue32625> to update the dis
module documentation.

I have also found a patch (mkfu4.patch) attached to issue 27095 where
EXTENDED_ARG is described as

 .. opcode:: EXTENDED_ARG (ext)

   EXTENDED_ARG adds ``*ext* * 256`` to the next instruction's argument.
   This is used for arguments exceeding a byte in size, and can be chained
   to create 4-byte arguments.

I am not sure this is correct.  First, multiple EXTENDED_ARG codes
seem to add ext * 256 ** i or bit-append ext to arg. Second, it looks
like this mechanism allows forming arguments of arbitrary bit length,
not just 4-byte arguments.

More information about the Python-Dev mailing list