Add BLT test

This commit is contained in:
Toby Jaffey 2025-12-14 21:53:54 +00:00
parent 83276f98e4
commit 49a94ca174
3 changed files with 25 additions and 0 deletions

View file

@ -7,6 +7,14 @@ void main(void) {
asm("auipc t0, 0"); // copy pc into t0 asm("auipc t0, 0"); // copy pc into t0
asm("auipc t1, 0"); // copy pc into t1 asm("auipc t1, 0"); // copy pc into t1
break; break;
case TEST2:
asm("li t0, 2");
asm("li t1, 1");
label2:
println("loop");
asm goto("blt t0, t1, %l0" : : : : label2);
break;
} }
} }

View file

@ -3,4 +3,5 @@
enum { enum {
TEST1, TEST1,
TEST2,
}; };

View file

@ -59,4 +59,20 @@ void test_auipc(void) {
TEST_ASSERT_EQUAL(vmst._core.regs[6], vmst._core.regs[5] + 4); TEST_ASSERT_EQUAL(vmst._core.regs[6], vmst._core.regs[5] + 4);
} }
void test_blt(void) {
uvm32_run(&vmst, &evt, 100);
// check for picktest syscall
TEST_ASSERT_EQUAL(evt.typ, UVM32_EVT_SYSCALL);
TEST_ASSERT_EQUAL(evt.data.syscall.code, SYSCALL_PICKTEST);
uvm32_arg_setval(&vmst, &evt, RET, TEST2);
uvm32_run(&vmst, &evt, 100);
TEST_ASSERT_EQUAL(evt.typ, UVM32_EVT_SYSCALL);
TEST_ASSERT_EQUAL(evt.data.syscall.code, UVM32_SYSCALL_PRINTLN);
// run vm to completion
uvm32_run(&vmst, &evt, 100);
TEST_ASSERT_EQUAL(evt.typ, UVM32_EVT_END);
}