Browse Source

py/runtime0.h: Move MP_BINARY_OP_DIVMOD to the end of mp_binary_op_t.

It starts a dichotomy of mp_binary_op_t values which can't appear in the
bytecode. Another reason to move it is to VALUES of OP_* and OP_INPLACE_*
nicely adjacent. This also will be needed for OP_REVERSE_*, to be soon
introduced.
pull/3304/head
Paul Sokolovsky 7 years ago
parent
commit
50b9329eba
  1. 6
      py/runtime0.h
  2. 2
      tests/cmdline/cmd_showbc.py.exp

6
py/runtime0.h

@ -84,7 +84,6 @@ typedef enum {
MP_BINARY_OP_MODULO,
MP_BINARY_OP_POWER,
MP_BINARY_OP_DIVMOD, // not emitted by the compiler but supported by the runtime
MP_BINARY_OP_INPLACE_OR,
MP_BINARY_OP_INPLACE_XOR,
@ -99,6 +98,11 @@ typedef enum {
MP_BINARY_OP_INPLACE_TRUE_DIVIDE,
MP_BINARY_OP_INPLACE_MODULO,
MP_BINARY_OP_INPLACE_POWER,
// Operations below this line don't appear in bytecode, they
// just identify special methods.
MP_BINARY_OP_DIVMOD, // not emitted by the compiler but supported by the runtime
} mp_binary_op_t;
typedef enum {

2
tests/cmdline/cmd_showbc.py.exp

@ -132,7 +132,7 @@ Raw bytecode (code_info_size=\\d\+, bytecode_size=\\d\+):
\\d\+ DUP_TOP_TWO
\\d\+ LOAD_SUBSCR
\\d\+ LOAD_FAST 12
\\d\+ BINARY_OP 29 __iadd__
\\d\+ BINARY_OP 28 __iadd__
\\d\+ ROT_THREE
\\d\+ STORE_SUBSCR
\\d\+ LOAD_DEREF 14

Loading…
Cancel
Save