//Original:/proj/frio/dv/testcases/core/c_ccflag_dr_dr/c_ccflag_dr_dr.dsp // Spec Reference: ccflags dr-dr # mach: bfin .include "testutils.inc" start imm32 r0, 0x00110022; imm32 r1, 0x00110022; imm32 r2, 0x00330044; imm32 r3, 0x00550066; imm32 r4, 0x00770088; imm32 r5, 0x009900aa; imm32 r6, 0x00bb00cc; imm32 r7, 0x00000000; ASTAT = R7; R4 = ASTAT; // positive dreg-1 EQUAL to positive dreg-2 CC = R0 == R1; R5 = ASTAT; CC = R0 < R1; R6 = ASTAT; CC = R0 <= R1; R7 = ASTAT; CHECKREG r4, 0x00000000; CHECKREG r5, 0x00001025; CHECKREG r6, 0x00001005; CHECKREG r7, 0x00001025; CC = R0 < R1; R4 = ASTAT; CC = R0 <= R1 (IU); R5 = ASTAT; CHECKREG r4, 0x00001005; CHECKREG r5, 0x00001025; // positive dreg-1 GREATER than positive dreg-2 CC = R3 == R2; R5 = ASTAT; CC = R3 < R2; R6 = ASTAT; CC = R3 <= R2; R7 = ASTAT; CHECKREG r5, 0x00001004; CHECKREG r6, 0x00001004; CHECKREG r7, 0x00001004; CC = R3 < R2 (IU); R4 = ASTAT; CC = R3 <= R2 (IU); R5 = ASTAT; CHECKREG r4, 0x00001004; CHECKREG r5, 0x00001004; // positive dreg-1 LESS than positive dreg-2 CC = R2 == R3; R5 = ASTAT; CC = R2 < R3; R6 = ASTAT; CC = R2 <= R3; R7 = ASTAT; CHECKREG r5, 0x00000002; CHECKREG r6, 0x00000022; CHECKREG r7, 0x00000022; CC = R2 < R3; R4 = ASTAT; CC = R2 <= R3; R5 = ASTAT; CHECKREG r4, 0x00000022; CHECKREG r5, 0x00000022; imm32 r0, 0x01230123; imm32 r1, 0x81230123; imm32 r2, 0x04560456; imm32 r3, 0x87890789; // operate on negative number R7 = 0; ASTAT = R7; R4 = ASTAT; // positive dreg-1 GREATER than negative dreg-2 CC = R0 == R1; R5 = ASTAT; CC = R0 < R1; R6 = ASTAT; CC = R0 <= R1; R7 = ASTAT; CHECKREG r4, 0x00000000; CHECKREG r5, 0x00000000; CHECKREG r6, 0x00000000; CHECKREG r7, 0x00000000; // negative dreg-1 LESS than POSITIVE dreg-2 small CC = R3 == R2; R5 = ASTAT; CC = R3 < R2; R6 = ASTAT; CC = R3 <= R2; R7 = ASTAT; CHECKREG r5, 0x00001006; CHECKREG r6, 0x00001026; CHECKREG r7, 0x00001026; // negative dreg-1 GREATER than negative dreg-2 CC = R1 == R3; R5 = ASTAT; CC = R1 < R3; R6 = ASTAT; CC = R1 <= R3; R7 = ASTAT; CHECKREG r5, 0x00000002; CHECKREG r6, 0x00000022; CHECKREG r7, 0x00000022; // negative dreg-1 LESS than negative dreg-2 CC = R3 == R1; R5 = ASTAT; CC = R3 < R1; R6 = ASTAT; CC = R3 <= R1; R7 = ASTAT; CHECKREG r5, 0x00001004; CHECKREG r6, 0x00001004; CHECKREG r7, 0x00001004; imm32 r0, 0x80230123; imm32 r1, 0x00230123; imm32 r2, 0x80560056; imm32 r3, 0x00890089; // operate on negative number R7 = 0; ASTAT = R7; R4 = ASTAT; // negative dreg-1 LESS than POSITIVE dreg-2 CC = R2 == R3; R5 = ASTAT; CC = R2 < R3; R6 = ASTAT; CC = R2 <= R3; R7 = ASTAT; CHECKREG r4, 0x00000000; CHECKREG r5, 0x00001006; // overflow and carry but not negative CHECKREG r6, 0x00001026; // cc overflow, carry and negative CHECKREG r7, 0x00001026; imm32 r4, 0x44444444; imm32 r5, 0x55555555; imm32 r6, 0x66666666; imm32 r7, 0x77777777; imm32 r0, 0x00000000; imm32 r1, 0x11111111; imm32 r2, 0x22222222; imm32 r3, 0x33333333; ASTAT = R0; R3 = ASTAT; NOP; CHECKREG r3, 0x00000000; // positive dreg-1 EQUAL to positive dreg-2 CC = R4 == R5; R0 = ASTAT; CC = R4 < R5; R1 = ASTAT; CC = R4 <= R5; R2 = ASTAT; CC = R4 < R5; R3 = ASTAT; CHECKREG r0, 0x00000002; CHECKREG r1, 0x00000022; CHECKREG r2, 0x00000022; CHECKREG r3, 0x00000022; CC = R4 <= R5; R0 = ASTAT; NOP; CHECKREG r0, 0x00000022; // positive dreg-1 GREATER than positive dreg-2 CC = R7 == R6; R0 = ASTAT; CC = R7 < R6; R1 = ASTAT; CC = R7 <= R6; R2 = ASTAT; CC = R7 < R6; R3 = ASTAT; CHECKREG r0, 0x00001004; CHECKREG r1, 0x00001004; CHECKREG r2, 0x00001004; CHECKREG r3, 0x00001004; CC = R7 <= R6 (IU); R0 = ASTAT; NOP; CHECKREG r0, 0x00001004; // positive dreg-1 LESS than positive dreg-2 CC = R6 == R7; R0 = ASTAT; CC = R6 < R7; R1 = ASTAT; CC = R6 <= R7; R2 = ASTAT; CC = R6 < R7; R3 = ASTAT; CHECKREG r0, 0x00000002; CHECKREG r1, 0x00000022; CHECKREG r2, 0x00000022; CHECKREG r3, 0x00000022; CC = R6 <= R7; R0 = ASTAT; NOP; CHECKREG r0, 0x00000022; imm32 r4, 0x01230123; imm32 r5, 0x81230123; imm32 r6, 0x04560456; imm32 r7, 0x87890789; // operate on negative number R0 = 0; ASTAT = R0; R3 = ASTAT; CHECKREG r3, 0x00000000; // positive dreg-1 GREATER than negative dreg-2 CC = R4 == R5; R1 = ASTAT; CC = R4 < R5; R2 = ASTAT; CC = R4 <= R5; R3 = ASTAT; CHECKREG r1, 0x00000000; CHECKREG r2, 0x00000000; CHECKREG r3, 0x00000000; // negative dreg-1 LESS than POSITIVE dreg-2 small CC = R7 == R6; R0 = ASTAT; CC = R7 < R6; R1 = ASTAT; CC = R7 <= R6; R2 = ASTAT; CHECKREG r0, 0x00001006; CHECKREG r1, 0x00001026; CHECKREG r2, 0x00001026; // negative dreg-1 GREATER than negative dreg-2 CC = R5 == R7; R0 = ASTAT; CC = R5 < R7; R1 = ASTAT; CC = R5 <= R7; R2 = ASTAT; CHECKREG r0, 0x00000002; CHECKREG r1, 0x00000022; CHECKREG r2, 0x00000022; // negative dreg-1 LESS than negative dreg-2 CC = R7 == R5; R1 = ASTAT; CC = R7 < R5; R2 = ASTAT; CC = R7 <= R5; R3 = ASTAT; CHECKREG r1, 0x00001004; CHECKREG r2, 0x00001004; CHECKREG r3, 0x00001004; imm32 r4, 0x80230123; imm32 r5, 0x00230123; imm32 r6, 0x80560056; imm32 r7, 0x00890089; // operate on negative number R3 = 0; ASTAT = R3; R0 = ASTAT; // negative dreg-1 LESS than POSITIVE dreg-2 CC = R6 == R7; R1 = ASTAT; CC = R6 < R7; R2 = ASTAT; CC = R6 <= R7; R3 = ASTAT; CHECKREG r0, 0x00000000; CHECKREG r1, 0x00001006; // overflow and carry but not negative CHECKREG r2, 0x00001026; // cc overflow, carry and negative CHECKREG r3, 0x00001026; pass;