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.
This commit is contained in:
Paul Sokolovsky 2017-09-07 11:26:42 +03:00
parent d4d1c45a55
commit 50b9329eba
2 changed files with 6 additions and 2 deletions

View File

@ -84,7 +84,6 @@ typedef enum {
MP_BINARY_OP_MODULO, MP_BINARY_OP_MODULO,
MP_BINARY_OP_POWER, 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_OR,
MP_BINARY_OP_INPLACE_XOR, MP_BINARY_OP_INPLACE_XOR,
@ -99,6 +98,11 @@ typedef enum {
MP_BINARY_OP_INPLACE_TRUE_DIVIDE, MP_BINARY_OP_INPLACE_TRUE_DIVIDE,
MP_BINARY_OP_INPLACE_MODULO, MP_BINARY_OP_INPLACE_MODULO,
MP_BINARY_OP_INPLACE_POWER, 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; } mp_binary_op_t;
typedef enum { typedef enum {

View File

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