| # 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 |