summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/cris/asm/ba.ms
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/sim/cris/asm/ba.ms')
-rw-r--r--sim/testsuite/sim/cris/asm/ba.ms93
1 files changed, 93 insertions, 0 deletions
diff --git a/sim/testsuite/sim/cris/asm/ba.ms b/sim/testsuite/sim/cris/asm/ba.ms
new file mode 100644
index 00000000000..12119621e64
--- /dev/null
+++ b/sim/testsuite/sim/cris/asm/ba.ms
@@ -0,0 +1,93 @@
+# mach: crisv0 crisv3 crisv8 crisv10 crisv32
+# output: a\n
+
+ .include "testutils.inc"
+
+ .if ..asm.arch.cris.v32
+ .set smalloffset,0
+ .set largeoffset,0
+ .else
+ .set smalloffset,2
+ .set largeoffset,4
+ .endif
+
+ start
+ moveq 0,r3
+
+; Short forward branch.
+ ba 0f
+ addq 1,r3
+ fail
+
+; Max short forward branch.
+1:
+ ba 2f
+ addq 1,r3
+ fail
+
+; Short backward branch.
+0:
+ ba 1b
+ addq 1,r3
+ fail
+
+ .space 254-2+smalloffset+1b-.,0
+ moveq 0,r3
+
+2:
+; Transit branch (long).
+ ba 3f
+ addq 1,r3
+ fail
+
+ moveq 0,r3
+4:
+; Long forward branch.
+ ba 5f
+ addq 1,r3
+ fail
+
+ .space 256-2-smalloffset+4b-.,0
+
+ moveq 0,r3
+
+; Max short backward branch.
+3:
+ ba 4b
+ addq 1,r3
+ fail
+
+5:
+; Max long forward branch.
+ ba 6f
+ addq 1,r3
+ fail
+
+ .space 32766+largeoffset-2+5b-.,0
+
+ moveq 0,r3
+6:
+; Transit branch.
+ ba 7f
+ addq 1,r3
+ fail
+
+ moveq 0,r3
+9:
+ dumpr3
+ quit
+
+; Transit branch.
+ moveq 0,r3
+7:
+ ba 8f
+ addq 1,r3
+ fail
+
+ .space 32768-largeoffset+9b-.,0
+
+8:
+; Max long backward branch.
+ ba 9b
+ addq 1,r3
+ fail