1//Original:/proj/frio/dv/testcases/core/c_ccflag_pr_pr/c_ccflag_pr_pr.dsp 2// Spec Reference: ccflag pr-pr 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8INIT_P_REGS 0; 9INIT_R_REGS 0; 10 11 12//imm32 p0, 0x00110022; 13imm32 p1, 0x00110022; 14imm32 p2, 0x00330044; 15imm32 p3, 0x00550066; 16 17imm32 p4, 0x00770088; 18imm32 p5, 0x009900aa; 19imm32 fp, 0x00bb00cc; 20imm32 sp, 0x00000000; 21 22R0 = 0; 23ASTAT = R0; 24R4 = ASTAT; 25 26// positive preg-1 EQUAL to positive preg-2 27CC = P2 == P1; 28R5 = ASTAT; 29P5 = R5; 30CC = P2 < P1; 31R6 = ASTAT; 32CC = P2 <= P1; 33R7 = ASTAT; 34CHECKREG r4, 0x00000000; 35CHECKREG r5, 0x00000000; 36CHECKREG r6, 0x00000000; 37CHECKREG r7, 0x00000000; 38 39// positive preg-1 GREATER than positive preg-2 40CC = P3 == P2; 41R5 = ASTAT; 42CC = P3 < P2; 43R6 = ASTAT; 44CC = P3 <= P2; 45R7 = ASTAT; 46CHECKREG r5, 0x00000000; 47CHECKREG r6, 0x00000000; 48CHECKREG r7, 0x00000000; 49// positive preg-1 LESS than positive preg-2 50CC = P2 == P3; 51R5 = ASTAT; 52CC = P2 < P3; 53R6 = ASTAT; 54CC = P2 <= P3; 55R7 = ASTAT; 56CHECKREG r5, 0x00000000; 57CHECKREG r6, 0x00000020; 58CHECKREG r7, 0x00000020; 59 60//imm32 p0, 0x01230123; 61imm32 p1, 0x81230123; 62imm32 p2, 0x04560456; 63imm32 p3, 0x87890789; 64// operate on negative number 65R0 = 0; 66ASTAT = R0; 67R4 = ASTAT; 68 69// positive preg-1 GREATER than negative preg-2 70CC = P2 == P1; 71R5 = ASTAT; 72CC = P2 < P1; 73R6 = ASTAT; 74CC = P2 <= P1; 75R7 = ASTAT; 76CHECKREG r4, 0x00000000; 77CHECKREG r5, 0x00000000; 78CHECKREG r6, 0x00000000; 79CHECKREG r7, 0x00000000; 80 81// negative preg-1 LESS than POSITIVE preg-2 small 82CC = P3 == P2; 83R5 = ASTAT; 84CC = P3 < P2; 85R6 = ASTAT; 86CC = P3 <= P2; 87R7 = ASTAT; 88CHECKREG r5, 0x00000000; 89CHECKREG r6, 0x00000020; 90CHECKREG r7, 0x00000020; 91 92// negative preg-1 GREATER than negative preg-2 93CC = P1 == P3; 94R5 = ASTAT; 95CC = P1 < P3; 96R6 = ASTAT; 97CC = P1 <= P3; 98R7 = ASTAT; 99CHECKREG r5, 0x00000000; 100CHECKREG r6, 0x00000020; 101CHECKREG r7, 0x00000020; 102 103// negative preg-1 LESS than negative preg-2 104CC = P3 == P1; 105R5 = ASTAT; 106CC = P3 < P1; 107R6 = ASTAT; 108CC = P3 <= P1; 109R7 = ASTAT; 110CHECKREG r5, 0x00000000; 111CHECKREG r6, 0x00000000; 112CHECKREG r7, 0x00000000; 113 114 115//imm32 p0, 0x80230123; 116imm32 p1, 0x00230123; 117imm32 p2, 0x80560056; 118imm32 p3, 0x00890089; 119// operate on negative number 120R0 = 0; 121ASTAT = R0; 122R4 = ASTAT; 123 124// negative preg-1 LESS than POSITIVE preg-2 125CC = P2 == P3; 126R5 = ASTAT; 127CC = P2 < P3; 128R6 = ASTAT; 129CC = P2 <= P3; 130R7 = ASTAT; 131CHECKREG r4, 0x00000000; 132CHECKREG r5, 0x00000000; // overflow and carry but not negative 133CHECKREG r6, 0x00000020; // cc overflow, carry and negative 134CHECKREG r7, 0x00000020; 135 136 137imm32 p4, 0x44444444; 138imm32 p5, 0x55555555; 139imm32 fp, 0x66666666; 140imm32 sp, 0x77777777; 141 142//imm32 p0, 0x00000000; 143imm32 p1, 0x11111111; 144imm32 p2, 0x00000000; 145imm32 p3, 0x33333333; 146 147ASTAT = R0; 148R3 = ASTAT; 149CHECKREG r3, 0x00000000; 150 151// positive preg-1 EQUAL to positive preg-2 152CC = P4 == P5; 153R0 = ASTAT; 154CC = P4 < P5; 155R1 = ASTAT; 156CC = P4 <= P5; 157R2 = ASTAT; 158CHECKREG r0, 0x00000000; 159CHECKREG r1, 0x00000020; 160CHECKREG r2, 0x00000020; 161 162// positive preg-1 GREATER than positive preg-2 163CC = SP == FP; 164R0 = ASTAT; 165CC = SP < FP; 166R1 = ASTAT; 167CC = SP <= FP; 168R2 = ASTAT; 169CHECKREG r0, 0x00000000; 170CHECKREG r1, 0x00000000; 171CHECKREG r2, 0x00000000; 172 173 174// positive preg-1 LESS than positive preg-2 175CC = FP == SP; 176R0 = ASTAT; 177CC = FP < SP; 178R1 = ASTAT; 179CC = FP <= SP; 180R2 = ASTAT; 181CHECKREG r0, 0x00000000; 182CHECKREG r1, 0x00000020; 183CHECKREG r2, 0x00000020; 184 185imm32 p4, 0x01230123; 186imm32 p5, 0x81230123; 187imm32 fp, 0x04560456; 188imm32 sp, 0x87890789; 189// operate on negative number 190R0 = 0; 191ASTAT = R0; 192R3 = ASTAT; // nop; 193CHECKREG r3, 0x00000000; 194 195// positive preg-1 GREATER than negative preg-2 196CC = P4 == P5; 197R1 = ASTAT; 198CC = P4 < P5; 199R2 = ASTAT; 200CC = P4 <= P5; 201R3 = ASTAT; 202CHECKREG r1, 0x00000000; 203CHECKREG r2, 0x00000000; 204CHECKREG r3, 0x00000000; 205 206// negative preg-1 LESS than POSITIVE preg-2 small 207CC = SP == FP; 208R0 = ASTAT; 209CC = SP < FP; 210R1 = ASTAT; 211CC = SP <= FP; 212R2 = ASTAT; 213CHECKREG r0, 0x00000000; 214CHECKREG r1, 0x00000020; 215CHECKREG r2, 0x00000020; 216 217// negative preg-1 GREATER than negative preg-2 218CC = P5 == SP; 219R0 = ASTAT; 220CC = P5 < SP; 221R1 = ASTAT; 222CC = P5 <= SP; 223R2 = ASTAT; 224CHECKREG r0, 0x00000000; 225CHECKREG r1, 0x00000020; 226CHECKREG r2, 0x00000020; 227 228// negative preg-1 LESS than negative preg-2 229CC = SP == P5; 230R1 = ASTAT; 231CC = SP < P5; 232R2 = ASTAT; 233CC = SP <= P5; 234R3 = ASTAT; 235CHECKREG r1, 0x00000000; 236CHECKREG r2, 0x00000000; 237CHECKREG r3, 0x00000000; 238 239 240imm32 p4, 0x80230123; 241imm32 p5, 0x00230123; 242imm32 fp, 0x80560056; 243imm32 sp, 0x00890089; 244// operate on negative number 245P3 = 0; 246ASTAT = P3; 247R0 = ASTAT; 248 249// negative preg-1 LESS than POSITIVE preg-2 250CC = R6 == R7; 251R1 = ASTAT; 252CC = R6 < R7; 253R2 = ASTAT; 254CC = R6 <= R7; 255R3 = ASTAT; 256CHECKREG r0, 0x00000000; 257CHECKREG r1, 0x00001025; // overflow and carry but not negative 258CHECKREG r2, 0x00001005; // cc overflow, carry and negative 259CHECKREG r3, 0x00001025; 260 261 262pass; 263