diff options
Diffstat (limited to 'tests/tcg/cris/testutils.inc')
-rw-r--r-- | tests/tcg/cris/testutils.inc | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/tests/tcg/cris/testutils.inc b/tests/tcg/cris/testutils.inc new file mode 100644 index 0000000000..aa1641b2e6 --- /dev/null +++ b/tests/tcg/cris/testutils.inc @@ -0,0 +1,117 @@ + .syntax no_register_prefix + + .macro start + .text + .global main +main: + .endm + + .macro quit + jump pass + nop + .endm + + .macro pass + jump pass + nop + .endm + + .macro startnostack + start + .endm + + .macro fail + .data +99: + .asciz " checkr3 failed\n" + .text + move.d 99b, $r10 + jsr _fail + nop + .endm + + .macro checkr3 val + cmp.d 0x\val, $r3 + beq 100f + nop + .data +99: + .asciz "checkr3 failed\n" + .text + move.d 99b, $r10 + jsr _fail + nop +100: + .endm + +; Test the condition codes + .macro test_cc N Z V C + .if \N + bpl 9f + nop + .else + bmi 9f + nop + .endif + .if \Z + bne 9f + nop + .else + beq 9f + nop + .endif + .if \V + bvc 9f + nop + .else + bvs 9f + nop + .endif + .if \C + bcc 9f + nop + .else + bcs 9f + nop + .endif + ba 8f + nop +9: + .data +99: + .asciz "test_move_cc failed\n" + .text + move.d 99b, $r10 + jsr _fail + nop +8: + .endm + + + .macro test_move_cc N Z V C + .if \N + bpl 9f + nop + .else + bmi 9f + nop + .endif + .if \Z + bne 9f + nop + .else + beq 9f + nop + .endif + ba 8f + nop +9: + .data +99: + .asciz "test_move_cc failed\n" + .text + move.d 99b, $r10 + jsr _fail + nop +8: + .endm |