diff options
Diffstat (limited to 'sim/testsuite/mips/r6-branch.s')
-rw-r--r-- | sim/testsuite/mips/r6-branch.s | 291 |
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 0000000..2d905ba --- /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 |