.text | |
.global _start, _write, _exit | |
.global _tc_fail, _tc_pass | |
_write: | |
addi sp, sp, -4 | |
sw (sp+4), r8 | |
mvi r8, 5 | |
scall | |
lw r8, (sp+4) | |
addi sp, sp, 4 | |
ret | |
_exit: | |
mvi r8, 1 | |
scall | |
1: | |
bi 1b | |
_tc_pass: | |
.data | |
1: | |
.ascii "OK\n" | |
2: | |
.text | |
addi sp, sp, -16 | |
sw (sp+4), ra | |
sw (sp+8), r1 | |
sw (sp+12), r2 | |
sw (sp+16), r3 | |
mvi r1, 1 | |
mvhi r2, hi(1b) | |
ori r2, r2, lo(1b) | |
mvi r3, (2b - 1b) | |
calli _write | |
lw r3, (sp+16) | |
lw r2, (sp+12) | |
lw r1, (sp+8) | |
lw ra, (sp+4) | |
addi sp, sp, 16 | |
ret | |
_tc_fail: | |
.data | |
1: | |
.ascii "FAILED\n" | |
2: | |
.text | |
addi sp, sp, -16 | |
sw (sp+4), ra | |
sw (sp+8), r1 | |
sw (sp+12), r2 | |
sw (sp+16), r3 | |
sw (sp+4), ra | |
mvi r1, 1 | |
mvhi r2, hi(1b) | |
ori r2, r2, lo(1b) | |
mvi r3, (2b - 1b) | |
calli _write | |
lw r3, (sp+16) | |
lw r2, (sp+12) | |
lw r1, (sp+8) | |
lw ra, (sp+4) | |
addi sp, sp, 16 | |
ret |