Address review comments on labels and the rust_start call, plus add "assembly" to Bors.
diff --git a/bors.toml b/bors.toml index 4b9b851..3faebdc 100644 --- a/bors.toml +++ b/bors.toml
@@ -1,4 +1,5 @@ status = [ + "assembly", "ci", "size-diff", ]
diff --git a/core/runtime/asm/asm_riscv32.S b/core/runtime/asm/asm_riscv32.S index c3f42c9..d95ca12 100644 --- a/core/runtime/asm/asm_riscv32.S +++ b/core/runtime/asm/asm_riscv32.S
@@ -20,7 +20,7 @@ li a4, 6 /* `exit` class */ ecall - .Lset_brk: +.Lset_brk: /* memop(): set brk to rt_header's initial break value */ li a0, 0 /* operation: set break */ lw a1, 4(a5) /* rt_header's initial process break */ @@ -35,23 +35,24 @@ beqz a0, .Lzero_bss /* Jump to zero_bss if remaining is zero */ lw a1, 16(a5) /* src = rt_header.data_flash_start */ lw a2, 20(a5) /* dest = rt_header.data_ram_start */ - .Ldata_loop_body: +.Ldata_loop_body: lw a3, 0(a1) /* a3 = *src */ sw a3, 0(a2) /* *dest = a3 */ - c.addi a0, -4 /* remaining -= 4 */ - c.addi a1, 4 /* src += 4 */ - c.addi a2, 4 /* dest += 4 */ + addi a0, a0, -4 /* remaining -= 4 */ + addi a1, a1, 4 /* src += 4 */ + addi a2, a2, 4 /* dest += 4 */ bnez a0, .Ldata_loop_body /* Iterate again if remaining != 0 */ - .Lzero_bss: +.Lzero_bss: lw a0, 24(a5) /* remaining = rt_header.bss_size */ beqz a0, .Lcall_rust_start /* Jump to call_Main if remaining is zero */ lw a1, 28(a5) /* dest = rt_header.bss_start */ - .Lbss_loop_body: +.Lbss_loop_body: sb zero, 0(a1) /* *dest = zero */ - c.addi a0, -1 /* remaining -= 1 */ - c.addi a1, 1 /* dest += 1 */ + addi a0, a0, -1 /* remaining -= 1 */ + addi a1, a1, 1 /* dest += 1 */ bnez a0, .Lbss_loop_body /* Iterate again if remaining != 0 */ - .Lcall_rust_start: +.Lcall_rust_start: + /* Note: rust_start must be a diverging function (i.e. return `!`) */ jal rust_start