Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / cris / testutils.inc
diff --git a/qemu/tests/tcg/cris/testutils.inc b/qemu/tests/tcg/cris/testutils.inc
new file mode 100644 (file)
index 0000000..aa1641b
--- /dev/null
@@ -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