bpo-28810: Document remaining bytecode changes in 3.6 (GH-651) by brettcannon · Pull Request #808 · python/cpython
.. versionchanged:: 3.6 Use 2 bytes for each instruction. Previously the number of bytes varied by instruction.
Example: Given the function :func:`myfunc`::
.. versionchanged:: 3.6 Line numbers can be decreasing. Before, they were always increasing.
.. function:: findlabels(code)
This is not really an opcode. It identifies the dividing line between opcodes which don't take arguments ``< HAVE_ARGUMENT`` and those which do ``>= HAVE_ARGUMENT``. opcodes which don't use their argument and those that do (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively).
.. versionchanged:: 3.6 Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument.
.. _opcode_collections: