| //Original:/proj/frio/dv/testcases/core/c_ccflag_dr_imm3/c_ccflag_dr_imm3.dsp |
| // Spec Reference: ccflag dr-imm3 |
| # mach: bfin |
| |
| .include "testutils.inc" |
| start |
| |
| |
| imm32 r0, 0x00000001; |
| imm32 r1, 0x00000002; |
| imm32 r2, 0x00000003; |
| imm32 r3, 0x00000004; |
| |
| imm32 r4, 0x00770088; |
| imm32 r5, 0x009900aa; |
| imm32 r6, 0x00bb00cc; |
| imm32 r7, 0x00000000; |
| |
| ASTAT = R7; |
| R4 = ASTAT; |
| |
| // positive dreg EQUAL to positive imm3 |
| CC = R0 == 1; |
| R5 = ASTAT; |
| CC = R0 < 1; |
| R6 = ASTAT; |
| CHECKREG r4, 0x00000000; |
| CHECKREG r5, 0x00001025; |
| CHECKREG r6, 0x00001005; |
| CC = R0 <= 1; |
| R5 = ASTAT; |
| CC = R0 < 1; |
| R6 = ASTAT; |
| CC = R0 <= 1; |
| R7 = ASTAT; |
| CHECKREG r5, 0x00001025; |
| CHECKREG r6, 0x00001005; |
| CHECKREG r7, 0x00001025; |
| |
| // positive dreg GREATER than to positive imm3 |
| CC = R1 == 1; |
| R5 = ASTAT; |
| CC = R1 < 1; |
| R6 = ASTAT; |
| CC = R1 <= 1; |
| R7 = ASTAT; |
| CHECKREG r5, 0x00001004; // carry |
| CHECKREG r6, 0x00001004; |
| CHECKREG r7, 0x00001004; |
| |
| // positive dreg LESS than to positive imm3 |
| CC = R0 == 2; |
| R5 = ASTAT; |
| CC = R0 < 2; |
| R6 = ASTAT; |
| CC = R0 <= 2; |
| R7 = ASTAT; |
| CHECKREG r5, 0x00000002; |
| CHECKREG r6, 0x00000022; |
| CHECKREG r7, 0x00000022; |
| |
| // positive dreg GREATER than to neg imm3 |
| CC = R2 == -4; |
| R5 = ASTAT; |
| CC = R2 < -4; |
| R6 = ASTAT; |
| CC = R2 <= -4; |
| R7 = ASTAT; |
| CHECKREG r5, 0x00000000; |
| CHECKREG r6, 0x00000000; |
| CHECKREG r7, 0x00000000; |
| |
| imm32 r0, -1; |
| imm32 r1, -2; |
| imm32 r2, -3; |
| imm32 r3, -4; |
| // negative dreg and positive imm3 |
| R7 = 0; |
| ASTAT = R7; |
| R4 = ASTAT; |
| |
| CC = R3 == 1; |
| R5 = ASTAT; |
| CC = R3 < 1; |
| R6 = ASTAT; |
| CC = R3 <= 1; |
| R7 = ASTAT; |
| CHECKREG r4, 0x00000000; |
| CHECKREG r5, 0x00001006; |
| CHECKREG r6, 0x00001026; |
| CHECKREG r7, 0x00001026; |
| |
| // negative dreg LESS than neg imm3 |
| CC = R2 == -1; |
| R4 = ASTAT; |
| CC = R2 < -1; |
| R5 = ASTAT; |
| CC = R2 <= -1; |
| R6 = ASTAT; |
| CHECKREG r4, 0x00000002; |
| CHECKREG r5, 0x00000022; |
| CHECKREG r6, 0x00000022; |
| |
| // negative dreg GREATER neg imm3 |
| CC = R0 == -4; |
| R4 = ASTAT; |
| CC = R0 < -4; |
| R5 = ASTAT; |
| CC = R0 <= -4; |
| R6 = ASTAT; |
| CHECKREG r4, 0x00001004; |
| CHECKREG r5, 0x00001004; |
| CHECKREG r6, 0x00001004; |
| |
| |
| imm32 r0, 0x00000000; |
| imm32 r1, 0x00000000; |
| imm32 r2, 0x00000000; |
| imm32 r3, 0x00000000; |
| |
| imm32 r4, 0x00000001; |
| imm32 r5, 0x00000002; |
| imm32 r6, 0x00000003; |
| imm32 r7, 0x00000004; |
| |
| ASTAT = R0; |
| R3 = ASTAT; |
| |
| // positive dreg EQUAL to positive imm3 |
| CC = R4 == 1; |
| R1 = ASTAT; |
| CC = R4 < 1; |
| R2 = ASTAT; |
| CHECKREG r0, 0x00000000; |
| CHECKREG r1, 0x00001025; |
| CHECKREG r2, 0x00001005; |
| CC = R4 <= 1; |
| R1 = ASTAT; |
| CC = R4 < 1; |
| R2 = ASTAT; |
| CC = R4 <= 1; |
| R3 = ASTAT; |
| CHECKREG r1, 0x00001025; |
| CHECKREG r2, 0x00001005; |
| CHECKREG r3, 0x00001025; |
| |
| // positive dreg GREATER than to positive imm3 |
| CC = R5 == 1; |
| R1 = ASTAT; |
| CC = R5 < 1; |
| R2 = ASTAT; |
| CC = R5 <= 1; |
| R3 = ASTAT; |
| CHECKREG r1, 0x00001004; // carry |
| CHECKREG r2, 0x00001004; |
| CHECKREG r3, 0x00001004; |
| |
| // positive dreg LESS than to positive imm3 |
| CC = R6 == 2; |
| R1 = ASTAT; |
| CC = R6 < 2; |
| R2 = ASTAT; |
| CC = R6 <= 2; |
| R3 = ASTAT; |
| CHECKREG r1, 0x00001004; |
| CHECKREG r2, 0x00001004; |
| CHECKREG r3, 0x00001004; |
| |
| // positive dreg GREATER than to neg imm3 |
| CC = R6 == -4; |
| R1 = ASTAT; |
| CC = R6 < -4; |
| R2 = ASTAT; |
| CC = R6 <= -4; |
| R3 = ASTAT; |
| CHECKREG r1, 0x00000000; |
| CHECKREG r2, 0x00000000; |
| CHECKREG r3, 0x00000000; |
| |
| imm32 r4, -1; |
| imm32 r5, -2; |
| imm32 r6, -3; |
| imm32 r7, -4; |
| // negative dreg and positive imm3 |
| R3 = 0; |
| ASTAT = R3; |
| R0 = ASTAT; |
| |
| CC = R7 == 1; |
| R1 = ASTAT; |
| CC = R7 < 1; |
| R2 = ASTAT; |
| CC = R7 <= 1; |
| R3 = ASTAT; |
| CHECKREG r0, 0x00000000; |
| CHECKREG r1, 0x00001006; |
| CHECKREG r2, 0x00001026; |
| CHECKREG r3, 0x00001026; |
| |
| // negative dreg LESS than neg imm3 |
| CC = R6 == -1; |
| R0 = ASTAT; |
| CC = R6 < -1; |
| R1 = ASTAT; |
| CC = R6 <= -1; |
| R2 = ASTAT; |
| CHECKREG r0, 0x00000002; |
| CHECKREG r1, 0x00000022; |
| CHECKREG r2, 0x00000022; |
| |
| // negative dreg GREATER neg imm3 |
| CC = R4 == -4; |
| R0 = ASTAT; |
| CC = R4 < -4; |
| R1 = ASTAT; |
| CC = R4 <= -4; |
| R2 = ASTAT; |
| CHECKREG r0, 0x00001004; |
| CHECKREG r1, 0x00001004; |
| CHECKREG r2, 0x00001004; |
| |
| |
| |
| pass; |