diff options
Diffstat (limited to 'sim/testsuite/iq2000/testutils.inc')
-rw-r--r-- | sim/testsuite/iq2000/testutils.inc | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sim/testsuite/iq2000/testutils.inc b/sim/testsuite/iq2000/testutils.inc new file mode 100644 index 0000000..0e0dabd --- /dev/null +++ b/sim/testsuite/iq2000/testutils.inc @@ -0,0 +1,53 @@ +# MACRO: exit + .macro exit nr + ori r5, r0, \nr; + # Trap function 1: exit(). + ori r4, r0, 1; + syscall; + .endm + +# MACRO: pass +# Write 'pass' to stdout and quit + .macro pass + # Trap function 5: write(). + ori r4, r0, 5; + # Use stdout. + ori r5, r0, 1; + # Point to the string. + lui r6, %hi(1f); + ori r6, r6, %lo(1f); + # Number of bytes to write. + ori r7, r0, 5; + # Trigger OS trap. + syscall; + exit 0 + .data + 1: .asciz "pass\n" + .endm + +# MACRO: fail +# Write 'fail' to stdout and quit + .macro fail + # Trap function 5: write(). + ori r4, r0, 5; + # Use stdout. + ori r5, r0, 1; + # Point to the string. + lui r6, %hi(1f); + ori r6, r6, %lo(1f); + # Number of bytes to write. + ori r7, r0, 5; + # Trigger OS trap. + syscall; + exit 0 + .data + 1: .asciz "fail\n" + .endm + +# MACRO: start +# All assembler tests should start with a call to "start" + .macro start + .text +.global _start +_start: + .endm |