test: lm32: use semihosting for testing

Instead of the lm32-sys device, use semihosting to print to the host
console and exit the test.

Signed-off-by: Michael Walle <michael@walle.cc>
This commit is contained in:
Michael Walle 2014-04-22 20:18:43 +02:00
parent f7bbcfb5c3
commit 4e7d30a22a
5 changed files with 103 additions and 22 deletions

View file

@ -1,12 +1,26 @@
.equ MAX_TESTNAME_LEN, 32
.macro test_name name
.data
tn_\name:
.asciz "\name"
.ascii "\name"
.space MAX_TESTNAME_LEN - (. - tn_\name), ' '
.text
mvhi r13, hi(tn_\name)
ori r13, r13, lo(tn_\name)
sw (r12+8), r13
.global \name
\name:
addi sp, sp, -12
sw (sp+4), r1
sw (sp+8), r2
sw (sp+12), r3
mvi r1, 1
mvhi r2, hi(tn_\name)
ori r2, r2, lo(tn_\name)
mvi r3, MAX_TESTNAME_LEN
calli _write
lw r3, (sp+12)
lw r2, (sp+8)
lw r1, (sp+4)
addi sp, sp, 12
.endm
.macro load reg val
@ -15,13 +29,12 @@ tn_\name:
.endm
.macro tc_pass
mvi r13, 0
sw (r12+4), r13
calli _tc_pass
.endm
.macro tc_fail
mvi r13, 1
sw (r12+4), r13
addi r12, r12, 1
calli _tc_fail
.endm
.macro check_r3 val
@ -63,14 +76,12 @@ tn_\name:
.global _main
.text
_main:
mvhi r12, hi(0xffff0000) # base address of test block
ori r12, r12, lo(0xffff0000)
mvi r12, 0
.endm
.macro end
sw (r12+0), r0
1:
bi 1b
mv r1, r12
calli _exit
.endm
# base +