1 //Original:/proj/frio/dv/testcases/core/c_ccflag_dr_imm3_uu/c_ccflag_dr_imm3_uu.dsp 2 // Spec Reference: ccflag dr-imm3 (uu) 3 # mach: bfin 4 5 .include "testutils.inc" 6 start 7 8 9 imm32 r0, 0x00000001; 10 imm32 r1, 0x00000002; 11 imm32 r2, 0x00000003; 12 imm32 r3, 0x00000004; 13 14 imm32 r4, 0x00770088; 15 imm32 r5, 0x009900aa; 16 imm32 r6, 0x00bb00cc; 17 imm32 r7, 0x00000000; 18 19 ASTAT = R7; 20 R4 = ASTAT; 21 22 // positive dreg EQUAL to positive imm3 23 CC = R0 == 1; 24 R5 = ASTAT; 25 CC = R0 < 1; 26 R6 = ASTAT; 27 CHECKREG r4, 0x00000000; 28 CHECKREG r5, 0x00001025; 29 CHECKREG r6, 0x00001005; 30 CC = R0 <= 1; 31 R5 = ASTAT; 32 CC = R0 < 1 (IU); 33 R6 = ASTAT; 34 CC = R0 <= 1 (IU); 35 R7 = ASTAT; 36 CHECKREG r5, 0x00001025; 37 CHECKREG r6, 0x00001005; 38 CHECKREG r7, 0x00001025; 39 40 // positive dreg GREATER than to positive imm3 41 CC = R1 == 1; 42 R5 = ASTAT; 43 CC = R1 < 1 (IU); 44 R6 = ASTAT; 45 CC = R1 <= 1 (IU); 46 R7 = ASTAT; 47 CHECKREG r5, 0x00001004; // carry 48 CHECKREG r6, 0x00001004; 49 CHECKREG r7, 0x00001004; 50 51 // positive dreg LESS than to positive imm3 52 CC = R0 == 2; 53 R5 = ASTAT; 54 CC = R0 < 2 (IU); 55 R6 = ASTAT; 56 CC = R0 <= 2 (IU); 57 R7 = ASTAT; 58 CHECKREG r5, 0x00000002; 59 CHECKREG r6, 0x00000022; 60 CHECKREG r7, 0x00000022; 61 62 // positive dreg GREATER than to neg imm3 63 CC = R2 == -4; 64 R5 = ASTAT; 65 CC = R2 < 4 (IU); 66 R6 = ASTAT; 67 CC = R2 <= 4 (IU); 68 R7 = ASTAT; 69 CHECKREG r5, 0x00000000; 70 CHECKREG r6, 0x00000022; 71 CHECKREG r7, 0x00000022; 72 73 imm32 r0, -1; 74 imm32 r1, -2; 75 imm32 r2, -3; 76 imm32 r3, -4; 77 // negative dreg and positive imm3 78 R7 = 0; 79 ASTAT = R7; 80 R4 = ASTAT; 81 82 CC = R3 == 1; 83 R5 = ASTAT; 84 CC = R3 < 1 (IU); 85 R6 = ASTAT; 86 CC = R3 <= 1 (IU); 87 R7 = ASTAT; 88 CHECKREG r4, 0x00000000; 89 CHECKREG r5, 0x00001006; 90 CHECKREG r6, 0x00001004; 91 CHECKREG r7, 0x00001004; 92 93 // negative dreg LESS than neg imm3 94 CC = R2 == -1; 95 R4 = ASTAT; 96 CC = R2 < 1 (IU); 97 R5 = ASTAT; 98 CC = R2 <= 1 (IU); 99 R6 = ASTAT; 100 CHECKREG r4, 0x00000002; 101 CHECKREG r5, 0x00001004; 102 CHECKREG r6, 0x00001004; 103 104 // negative dreg GREATER neg imm3 105 CC = R0 == -2; 106 R4 = ASTAT; 107 CC = R0 < 4 (IU); 108 R5 = ASTAT; 109 CC = R0 <= 4 (IU); 110 R6 = ASTAT; 111 CHECKREG r4, 0x00001004; 112 CHECKREG r5, 0x00001004; 113 CHECKREG r6, 0x00001004; 114 115 116 imm32 r0, 0x00000000; 117 imm32 r1, 0x00000000; 118 imm32 r2, 0x00000000; 119 imm32 r3, 0x00000000; 120 121 imm32 r4, 0x00000001; 122 imm32 r5, 0x00000002; 123 imm32 r6, 0x00000003; 124 imm32 r7, 0x00000004; 125 126 ASTAT = R0; 127 R3 = ASTAT; 128 129 // positive dreg EQUAL to positive imm3 130 CC = R4 == 1; 131 R1 = ASTAT; 132 CC = R4 < 1 (IU); 133 R2 = ASTAT; 134 CC = R4 <= 1 (IU); 135 R3 = ASTAT; 136 CHECKREG r0, 0x00000000; 137 CHECKREG r1, 0x00001025; 138 CHECKREG r2, 0x00001005; 139 CHECKREG r3, 0x00001025; 140 141 // positive dreg GREATER than to positive imm3 142 CC = R5 == 1; 143 R1 = ASTAT; 144 CC = R5 < 1 (IU); 145 R2 = ASTAT; 146 CC = R5 <= 1 (IU); 147 R3 = ASTAT; 148 CHECKREG r1, 0x00001004; // carry 149 CHECKREG r2, 0x00001004; 150 CHECKREG r3, 0x00001004; 151 152 // positive dreg LESS than to positive imm3 153 CC = R6 == 2; 154 R1 = ASTAT; 155 CC = R6 < 2 (IU); 156 R2 = ASTAT; 157 CC = R6 <= 2 (IU); 158 R3 = ASTAT; 159 CHECKREG r1, 0x00001004; 160 CHECKREG r2, 0x00001004; 161 CHECKREG r3, 0x00001004; 162 163 // positive dreg GREATER than to neg imm3 164 CC = R6 == -4; 165 R1 = ASTAT; 166 CC = R6 < 4 (IU); 167 R2 = ASTAT; 168 CC = R6 <= 4 (IU); 169 R3 = ASTAT; 170 CHECKREG r1, 0x00000000; 171 CHECKREG r2, 0x00000022; 172 CHECKREG r3, 0x00000022; 173 174 imm32 r4, -1; 175 imm32 r5, -2; 176 imm32 r6, -3; 177 imm32 r7, -4; 178 // negative dreg and positive imm3 179 R3 = 0; 180 ASTAT = R3; 181 R0 = ASTAT; 182 183 CC = R7 == 1; 184 R1 = ASTAT; 185 CC = R7 < 1 (IU); 186 R2 = ASTAT; 187 CC = R7 <= 1 (IU); 188 R3 = ASTAT; 189 CHECKREG r0, 0x00000000; 190 CHECKREG r1, 0x00001006; 191 CHECKREG r2, 0x00001004; 192 CHECKREG r3, 0x00001004; 193 194 // negative dreg LESS than neg imm3 195 CC = R6 == -1; 196 R0 = ASTAT; 197 CC = R6 < 1 (IU); 198 R1 = ASTAT; 199 CC = R6 <= 1 (IU); 200 R2 = ASTAT; 201 CHECKREG r0, 0x00000002; 202 CHECKREG r1, 0x00001004; 203 CHECKREG r2, 0x00001004; 204 205 // negative dreg GREATER neg imm3 206 CC = R4 == -4; 207 R0 = ASTAT; 208 CC = R4 < 4 (IU); 209 R1 = ASTAT; 210 CC = R4 <= 4 (IU); 211 R2 = ASTAT; 212 CHECKREG r0, 0x00001004; 213 CHECKREG r1, 0x00001004; 214 CHECKREG r2, 0x00001004; 215 216 217 218 219 220 221 pass; 222