summaryrefslogtreecommitdiff
path: root/sim/testsuite/mips/r6-branch.s
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/mips/r6-branch.s')
-rw-r--r--sim/testsuite/mips/r6-branch.s291
1 files changed, 291 insertions, 0 deletions
diff --git a/sim/testsuite/mips/r6-branch.s b/sim/testsuite/mips/r6-branch.s
new file mode 100644
index 00000000000..2d905ba97e6
--- /dev/null
+++ b/sim/testsuite/mips/r6-branch.s
@@ -0,0 +1,291 @@
+# mips r6 branch tests (non FPU)
+# mach: mips32r6 mips64r6
+# as: -mabi=eabi
+# ld: -N -Ttext=0x80010000
+# output: *\\npass\\n
+
+ .include "testutils.inc"
+ .include "utils-r6.inc"
+
+ setup
+
+ .set noreorder
+
+ .ent DIAG
+DIAG:
+ li $14, 0xffffffff
+ li $13, 0x123
+ li $12, 0x45
+ li $7, 0x45
+ li $8, 0xfffffffe
+ li $9, 2147483647
+ li $11, 0
+
+ writemsg "[1] Test BOVC"
+ bovc $12, $13, Lfail
+ nop
+ bovc $9, $13, L2
+ nop
+ fail
+
+L2:
+ writemsg "[2] Test BNVC"
+ bnvc $9, $13, Lfail
+ nop
+ bnvc $12, $13, L3
+ nop
+ fail
+
+L3:
+ writemsg "[3] Test BEQC"
+ beqc $12, $13, Lfail
+ nop
+ beqc $12, $7, L4
+ nop
+ fail
+
+L4:
+ writemsg "[4] Test BNEC"
+ bnec $12, $7, Lfail
+ nop
+ bnec $12, $13, L5
+ nop
+ fail
+
+L5:
+ writemsg "[5] Test BLTC"
+ bltc $13, $12, Lfail
+ nop
+ bltc $12, $13, L6
+ nop
+ fail
+
+L6:
+# writemsg "[6] Test BLEC"
+# blec $13, $12, Lfail
+# nop
+# blec $7, $12, L7
+# nop
+# fail
+
+L7:
+ writemsg "[7] Test BGEC"
+ bgec $12, $13, Lfail
+ nop
+ bgec $13, $12, L8
+ nop
+ fail
+
+L8:
+# writemsg "[8] Test BGTC"
+# bgtc $12, $13, Lfail
+# nop
+# bgtc $13, $12, L9
+# nop
+# fail
+
+
+L9:
+ writemsg "[9] Test BLTUC"
+ bltuc $14, $13, Lfail
+ nop
+ bltuc $8, $14, L10
+ nop
+ fail
+
+L10:
+# writemsg "[10] Test BLEUC"
+# bleuc $14, $13, Lfail
+# nop
+# bleuc $8, $14, L11
+# nop
+# fail
+
+L11:
+ writemsg "[11] Test BGEUC"
+ bgeuc $13, $14, Lfail
+ nop
+ bgeuc $14, $8, L12
+ nop
+ fail
+
+L12:
+# writemsg "[12] Test BGTUC"
+# bgtuc $13, $14, Lfail
+# nop
+# bgtuc $14, $8, L13
+# nop
+# fail
+
+L13:
+ writemsg "[13] Test BLTZC"
+ bltzc $13, Lfail
+ nop
+ bltzc $11, Lfail
+ nop
+ bltzc $14, L14
+ nop
+ fail
+
+L14:
+ writemsg "[14] Test BLEZC"
+ blezc $13, Lfail
+ nop
+ blezc $11, L145
+ nop
+ fail
+L145:
+ blezc $14, L15
+ nop
+ fail
+
+L15:
+ writemsg "[15] Test BGEZC"
+ bgezc $8, Lfail
+ nop
+ bgezc $11, L155
+ nop
+ fail
+L155:
+ bgezc $13, L16
+ nop
+ fail
+
+L16:
+ writemsg "[16] Test BGTZC"
+ bgtzc $8, Lfail
+ nop
+ bgtzc $11, Lfail
+ nop
+ bgtzc $13, L17
+ nop
+ fail
+
+ li $10, 0
+
+L17:
+ writemsg "[17] Test BLEZALC"
+ blezalc $12, Lfail
+ nop
+ blezalc $11, Lret
+ li $10, 1
+ beqzc $10, L175
+ nop
+ fail
+L175:
+ blezalc $14, Lret
+ li $10, 1
+ beqzc $10, L18
+ nop
+ fail
+
+L18:
+ writemsg "[18] Test BGEZALC"
+ bgezalc $14, Lfail
+ nop
+ bgezalc $11, Lret
+ li $10, 1
+ beqzc $10, L185
+ nop
+ fail
+L185:
+ bgezalc $12, Lret
+ li $10, 1
+ beqzc $10, L19
+ nop
+ fail
+
+L19:
+ writemsg "[19] Test BGTZALC"
+ bgtzalc $14, Lfail
+ nop
+ bgtzalc $11, Lfail
+ nop
+ bgtzalc $12, Lret
+ li $10, 1
+ beqzc $10, L20
+ nop
+ fail
+
+L20:
+ writemsg "[20] Test BLTZALC"
+ bltzalc $12, Lfail
+ nop
+ bltzalc $11, Lfail
+ nop
+ bltzalc $14, Lret
+ li $10, 1
+ beqzc $10, L21
+ nop
+ fail
+
+L21:
+ writemsg "[21] Test BC"
+ bc L22
+ fail
+
+L22:
+ writemsg "[22] Test BALC"
+ balc Lret
+ li $10, 1
+ beqzc $10, L23
+ nop
+ fail
+
+L23:
+ writemsg "[23] Test JIC"
+ jal GetPC
+ nop
+ jic $6, 4
+ nop
+ fail
+
+L24:
+ writemsg "[24] Test JIALC"
+ li $10, 1
+ jal GetPC
+ nop
+ jialc $6, 20
+ nop
+ beqzc $10, L25
+ nop
+ fail
+
+LJIALCRET:
+ li $10, 0
+ jr $ra
+ nop
+
+L25:
+ writemsg "[25] Test NAL"
+ jal GetPC
+ nop
+ move $11, $6
+ nal
+ nop
+ addiu $11, 12
+ beqc $11, $31, L26
+ nop
+ fail
+
+L26:
+ writemsg "[26] Test BAL"
+ balc Lret
+ li $10, 1
+ beqzc $10, Lend
+ nop
+ fail
+
+Lend:
+ pass
+
+Lfail:
+ fail
+
+ .end DIAG
+
+Lret:
+ li $10, 0
+ addiu $ra, 4
+ jr $ra
+ nop