mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
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:
parent
f7bbcfb5c3
commit
4e7d30a22a
5 changed files with 103 additions and 22 deletions
|
@ -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 +
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue