Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / cris / check_bcc.s
diff --git a/qemu/tests/tcg/cris/check_bcc.s b/qemu/tests/tcg/cris/check_bcc.s
new file mode 100644 (file)
index 0000000..c57ffa6
--- /dev/null
@@ -0,0 +1,197 @@
+       .global main
+       .type   main, @function
+main:
+       clearf nzvc
+       setf   nzv
+       bcc    0f
+       addq   1, $r3
+       jump   dofail
+
+0:
+       clearf nzvc
+       setf   nzv
+       bcs    dofail
+       addq   1,$r3
+
+       clearf nzvc
+       setf   ncv
+       bne    1f
+       addq   1, $r3
+
+fail:
+dofail:
+       jump    _fail
+
+1:
+       clearf nzvc
+       setf ncv
+       beq dofail
+       addq 1,$r3
+
+       clearf nzvc
+       setf ncz
+       bvc 2f
+       addq 1,$r3
+       jump dofail
+
+2:
+       clearf nzvc
+       setf ncz
+       bvs dofail
+       addq 1,$r3
+
+       clearf  nzvc
+       setf    vcz
+       bpl     3f
+       addq    1,$r3
+       jump    fail
+3:
+       clearf  nzvc
+       setf    vcz
+       bmi     dofail
+       addq    1,$r3
+
+       clearf  nzvc
+       setf    nv
+       bls     dofail
+       addq    1,$r3
+
+       clearf  nzvc
+       setf    nv
+       bhi     4f
+       addq    1,$r3
+       jump    dofail
+
+4:
+       clearf  nzvc
+       setf    zc
+       bge     5f
+       addq    1,$r3
+       jump    dofail
+
+5:
+       clearf  nzvc
+       setf zc
+       blt dofail
+       addq 1,$r3
+
+       clearf nzvc
+       setf c
+       bgt 6f
+       addq 1,$r3
+       jump  fail
+
+6:
+ clearf nzvc
+ setf c
+ ble dofail
+ addq 1,$r3
+
+;;;;;;;;;;
+
+ setf nzvc
+ clearf nzv
+ bcc dofail
+ addq 1,$r3
+
+ setf nzvc
+ clearf nzv
+ bcs 0f
+ addq 1,$r3
+ jump fail
+
+0:
+ setf nzvc
+ clearf ncv
+ bne dofail
+ addq 1,$r3
+
+ setf nzvc
+ clearf ncv
+ beq 1f
+ addq 1,$r3
+ jump fail
+
+1:
+ setf nzvc
+ clearf ncz
+ bvc dofail
+ addq 1,$r3
+
+ setf nzvc
+ clearf ncz
+ bvs 2f
+ addq 1,$r3
+ jump fail
+
+2:
+ setf nzvc
+ clearf vcz
+ bpl dofail
+ addq 1,$r3
+
+ setf nzvc
+ clearf vcz
+ bmi 3f
+ addq 1,$r3
+ jump fail
+
+3:
+ setf nzvc
+ clearf nv
+ bls 4f
+ addq 1,$r3
+ jump fail
+
+4:
+ setf nzvc
+ clearf nv
+ bhi dofail
+ addq 1,$r3
+
+ setf zvc
+ clearf nzc
+ bge dofail
+ addq 1,$r3
+
+ setf nzc
+ clearf vzc
+ blt 5f
+ addq 1,$r3
+ jump fail
+
+5:
+ setf nzvc
+ clearf c
+ bgt dofail
+ addq 1,$r3
+
+ setf nzvc
+ clearf c
+ ble 6f
+ addq 1,$r3
+ jump fail
+
+6:
+       ; do a forward branch.
+       ba   2f
+       nop
+       .fill   100
+1:
+       ba      3f
+       nop
+       .fill   800
+2:
+       ba      1b
+       nop
+       .fill   1024
+3:
+
+       moveq   31, $r0
+1:     bne     1b
+       subq    1, $r0
+
+       jsr     pass
+       moveq   0, $r10
+       ret
+       nop