diff options
Diffstat (limited to 'sim/testsuite/bfin/c_ccflag_pr_pr_uu.s')
-rw-r--r-- | sim/testsuite/bfin/c_ccflag_pr_pr_uu.s | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/sim/testsuite/bfin/c_ccflag_pr_pr_uu.s b/sim/testsuite/bfin/c_ccflag_pr_pr_uu.s new file mode 100644 index 00000000000..0cde8c23c40 --- /dev/null +++ b/sim/testsuite/bfin/c_ccflag_pr_pr_uu.s @@ -0,0 +1,212 @@ +//Original:/proj/frio/dv/testcases/core/c_ccflag_pr_pr_uu/c_ccflag_pr_pr_uu.dsp +// Spec Reference: ccflag pr-pr (uu) +# mach: bfin + +.include "testutils.inc" + start + +INIT_R_REGS 0; + +//imm32 p0, 0x00110022; +imm32 p1, 0x00110022; +imm32 p2, 0x00330044; +imm32 p3, 0x00550066; + +imm32 p4, 0x00770088; +imm32 p5, 0x009900aa; +imm32 fp, 0x00bb00cc; +imm32 sp, 0x00000000; + +ASTAT = R0; +R4 = ASTAT; + +// positive preg-1 EQUAL to positive preg-2 +CC = P2 < P1 (IU); +R6 = ASTAT; +CC = P2 <= P1 (IU); +R7 = ASTAT; +CHECKREG r4, 0x00000000; +CHECKREG r5, 0x00000000; +CHECKREG r6, 0x00000000; +CHECKREG r7, 0x00000000; + +// positive preg-1 GREATER than positive preg-2 +CC = P3 < P2 (IU); +R6 = ASTAT; +CC = P3 <= P2 (IU); +R7 = ASTAT; +CHECKREG r6, 0x00000000; +CHECKREG r7, 0x00000000; +// positive preg-1 LESS than positive preg-2 +CC = P2 < P3 (IU); +R6 = ASTAT; +CC = P2 <= P3 (IU); +R7 = ASTAT; +CHECKREG r6, 0x00000020; +CHECKREG r7, 0x00000020; + +//imm32 p0, 0x01230123; +imm32 p1, 0x81230123; +imm32 p2, 0x04560456; +imm32 p3, 0x87890789; +// operate on negative number +R0 = 0; +ASTAT = R0; +R4 = ASTAT; + +// positive preg-1 GREATER than negative preg-2 +CC = P2 < P1 (IU); +R6 = ASTAT; +CC = P2 <= P1 (IU); +R7 = ASTAT; +CHECKREG r4, 0x00000000; +CHECKREG r6, 0x00000020; +CHECKREG r7, 0x00000020; + +// negative preg-1 LESS than POSITIVE preg-2 small +CC = P3 < P2 (IU); +R6 = ASTAT; +CC = P3 <= P2 (IU); +R7 = ASTAT; +CHECKREG r6, 0x00000000; +CHECKREG r7, 0x00000000; + +// negative preg-1 GREATER than negative preg-2 +CC = P1 < P3 (IU); +R6 = ASTAT; +CC = P1 <= P3 (IU); +R7 = ASTAT; +CHECKREG r6, 0x00000020; +CHECKREG r7, 0x00000020; + +// negative preg-1 LESS than negative preg-2 +CC = P3 < P1 (IU); +R6 = ASTAT; +CC = P3 <= P1 (IU); +R7 = ASTAT; +CHECKREG r6, 0x00000000; +CHECKREG r7, 0x00000000; + + +//imm32 p0, 0x80230123; +imm32 p1, 0x00230123; +imm32 p2, 0x80560056; +imm32 p3, 0x00890089; +// operate on negative number +R0 = 0; +ASTAT = R0; +R4 = ASTAT; + +// negative preg-1 LESS than POSITIVE preg-2 +CC = P2 < P3 (IU); +R6 = ASTAT; +CC = P2 <= P3 (IU); +R7 = ASTAT; +CHECKREG r4, 0x00000000; // overflow and carry but not negative +CHECKREG r6, 0x00000000; // cc overflow, carry and negative +CHECKREG r7, 0x00000000; + + +imm32 p4, 0x44444444; +imm32 p5, 0x55555555; +imm32 fp, 0x66666666; +imm32 sp, 0x77777777; + +//imm32 p0, 0x00000000; +imm32 p1, 0x11111111; +imm32 p2, 0x00000000; +imm32 p3, 0x33333333; + +ASTAT = R0; +R3 = ASTAT; +CHECKREG r3, 0x00000000; + +// positive preg-1 EQUAL to positive preg-2 +CC = P4 < P5; +R1 = ASTAT; +CC = P4 <= P5; +R2 = ASTAT; +CHECKREG r1, 0x00000020; +CHECKREG r2, 0x00000020; + +// positive preg-1 GREATER than positive preg-2 +CC = SP < FP (IU); +R1 = ASTAT; +CC = SP <= FP (IU); +R2 = ASTAT; +CHECKREG r1, 0x00000000; +CHECKREG r2, 0x00000000; + + +// positive preg-1 LESS than positive preg-2 +CC = FP < SP (IU); +R1 = ASTAT; +CC = FP <= SP (IU); +R2 = ASTAT; +CHECKREG r1, 0x00000020; +CHECKREG r2, 0x00000020; + +imm32 p4, 0x01230123; +imm32 p5, 0x81230123; +imm32 fp, 0x04560456; +imm32 sp, 0x87890789; +// operate on negative number +R0 = 0; +ASTAT = R0; +R3 = ASTAT; // nop; +CHECKREG r3, 0x00000000; + +// positive preg-1 GREATER than negative preg-2 +CC = P4 < P5 (IU); +R2 = ASTAT; +CC = P4 <= P5 (IU); +R3 = ASTAT; +CHECKREG r2, 0x00000020; +CHECKREG r3, 0x00000020; + +// negative preg-1 LESS than POSITIVE preg-2 small +CC = SP < FP (IU); +R1 = ASTAT; +CC = SP <= FP (IU); +R2 = ASTAT; +CHECKREG r1, 0x00000000; +CHECKREG r2, 0x00000000; + +// negative preg-1 GREATER than negative preg-2 +CC = P5 < SP (IU); +R1 = ASTAT; +CC = P5 <= SP (IU); +R2 = ASTAT; +CHECKREG r1, 0x00000020; +CHECKREG r2, 0x00000020; + +// negative preg-1 LESS than negative preg-2 +CC = SP < P5 (IU); +R2 = ASTAT; +CC = SP <= P5 (IU); +R3 = ASTAT; +CHECKREG r1, 0x00000020; +CHECKREG r2, 0x00000000; +CHECKREG r3, 0x00000000; + + +imm32 p4, 0x80230123; +imm32 p5, 0x00230123; +imm32 fp, 0x80560056; +imm32 sp, 0x00890089; +// operate on negative number +R0 = 0; +ASTAT = R0; +R0 = ASTAT; + +// negative preg-1 LESS than POSITIVE preg-2 +CC = R6 < R7 (IU); +R2 = ASTAT; +CC = R6 <= R7 (IU); +R3 = ASTAT; +CHECKREG r0, 0x00000000; // overflow and carry but not negative +CHECKREG r2, 0x00001005; // cc overflow, carry and negative +CHECKREG r3, 0x00001025; + + +pass; |