Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/sim/testsuite/cr16/testutils.inc
2023-03-06 14:48:14 +01:00

74 lines
912 B
PHP

# r0-r5 are used as tmps, consider them call clobbered by these macros.
.macro START
.data
failmsg:
.ascii "fail\n"
passmsg:
.ascii "pass\n"
.text
.global _START
_START:
.global _start
_start:
.endm
.macro exit rc
movw $\rc,r2
movw $0x410,r0
excp 8
.endm
.macro pass
movw $1, r2
movd $passmsg,(r4,r3)
movw $5, r5
movw $0x404, r0
excp 8
exit 0
.endm
.macro fail
movw $1, r2
movd $failmsg,(r4,r3)
movw $5, r5
movw $0x404, r0
excp 8
exit 1
.endm
# Other macros know this only clobbers r0.
.macro test_h_gr reg, val
movw $\val,r0
cmpw \reg, r0
beq test_gr
fail
test_gr:
.endm
.macro test_h_grp regp, val
movd $\val,(r1,r0)
cmpd \regp,(r1,r0)
beq test_grp
fail
test_grp:
.endm
.macro mvi_h_condbit val
movw $0, r0
movw $\val, r1
cmpw r0, r1
.endm
.macro test_h_condbit val
.if \val
br test_c1
fail
test_c1:
.else
br test_c0
fail
test_c0:
.endif
.endm