showbc: Print operation mnemonic in BINARY_OP.

This commit is contained in:
Paul Sokolovsky 2014-12-28 21:41:58 +02:00
parent df103462dc
commit 1ee1785bed
2 changed files with 5 additions and 3 deletions

View File

@ -362,7 +362,7 @@ STATIC mp_obj_t instance_unary_op(mp_uint_t op, mp_obj_t self_in) {
}
}
STATIC const qstr binary_op_method_name[] = {
const qstr mp_binary_op_method_name[] = {
/*
MP_BINARY_OP_OR,
MP_BINARY_OP_XOR,
@ -435,7 +435,7 @@ STATIC mp_obj_t instance_binary_op(mp_uint_t op, mp_obj_t lhs_in, mp_obj_t rhs_i
// Note: For ducktyping, CPython does not look in the instance members or use
// __getattr__ or __getattribute__. It only looks in the class dictionary.
mp_obj_instance_t *lhs = lhs_in;
qstr op_name = binary_op_method_name[op];
qstr op_name = mp_binary_op_method_name[op];
/* Still try to lookup native slot
if (op_name == 0) {
return MP_OBJ_NULL;

View File

@ -34,6 +34,7 @@
#include "runtime.h"
#include "bc0.h"
#include "bc.h"
extern const qstr mp_binary_op_method_name[];
#if MICROPY_DEBUG_PRINTERS
@ -509,7 +510,8 @@ const byte *mp_bytecode_print_str(const byte *ip) {
} else if (ip[-1] < MP_BC_UNARY_OP_MULTI + 5) {
printf("UNARY_OP " UINT_FMT, (mp_uint_t)ip[-1] - MP_BC_UNARY_OP_MULTI);
} else if (ip[-1] < MP_BC_BINARY_OP_MULTI + 35) {
printf("BINARY_OP " UINT_FMT, (mp_uint_t)ip[-1] - MP_BC_BINARY_OP_MULTI);
mp_uint_t op = ip[-1] - MP_BC_BINARY_OP_MULTI;
printf("BINARY_OP " UINT_FMT " %s", op, qstr_str(mp_binary_op_method_name[op]));
} else {
printf("code %p, byte code 0x%02x not implemented\n", ip, ip[-1]);
assert(0);