summaryrefslogtreecommitdiffstatshomepage
path: root/py/emitbc.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/emitbc.c')
-rw-r--r--py/emitbc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/py/emitbc.c b/py/emitbc.c
index 9fa2880ecb..d74b065253 100644
--- a/py/emitbc.c
+++ b/py/emitbc.c
@@ -108,7 +108,7 @@ static void emit_write_byte_code_byte_byte(emit_t* emit, byte b1, uint b2) {
}
// integers (for small ints) are stored as 24 bits, in excess
-static void emit_write_byte_code_byte_int(emit_t* emit, byte b1, int num) {
+static void emit_write_byte_code_byte_int(emit_t* emit, byte b1, machine_int_t num) {
num += 0x800000;
assert(0 <= num && num <= 0xffffff);
byte* c = emit_get_cur_to_write_byte_code(emit, 4);
@@ -249,6 +249,7 @@ static void emit_bc_set_stack_size(emit_t *emit, int size) {
static void emit_bc_set_source_line(emit_t *emit, int source_line) {
//printf("source: line %d -> %d offset %d -> %d\n", emit->last_source_line, source_line, emit->last_source_line_offset, emit->byte_code_offset);
+#if MICROPY_ENABLE_SOURCE_LINE
if (source_line > emit->last_source_line) {
uint bytes_to_skip = emit->byte_code_offset - emit->last_source_line_offset;
uint lines_to_skip = source_line - emit->last_source_line;
@@ -257,6 +258,7 @@ static void emit_bc_set_source_line(emit_t *emit, int source_line) {
emit->last_source_line_offset = emit->byte_code_offset;
emit->last_source_line = source_line;
}
+#endif
}
static void emit_bc_load_id(emit_t *emit, qstr qstr) {
@@ -319,7 +321,7 @@ static void emit_bc_load_const_tok(emit_t *emit, mp_token_kind_t tok) {
}
}
-static void emit_bc_load_const_small_int(emit_t *emit, int arg) {
+static void emit_bc_load_const_small_int(emit_t *emit, machine_int_t arg) {
emit_pre(emit, 1);
emit_write_byte_code_byte_int(emit, MP_BC_LOAD_CONST_SMALL_INT, arg);
}
@@ -390,7 +392,7 @@ static void emit_bc_load_attr(emit_t *emit, qstr qstr) {
}
static void emit_bc_load_method(emit_t *emit, qstr qstr) {
- emit_pre(emit, 0);
+ emit_pre(emit, 1);
emit_write_byte_code_byte_qstr(emit, MP_BC_LOAD_METHOD, qstr);
}
@@ -707,7 +709,7 @@ static void emit_bc_call_method(emit_t *emit, int n_positional, int n_keyword, b
if (have_dbl_star_arg) {
s += 1;
}
- emit_pre(emit, -n_positional - 2 * n_keyword - s);
+ emit_pre(emit, -1 - n_positional - 2 * n_keyword - s);
int op;
if (have_star_arg) {
if (have_dbl_star_arg) {