1//Original:/testcases/core/c_cc2stat_cc_az/c_cc2stat_cc_az.dsp 2// Spec Reference: cc2stat cc az 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10imm32 r0, 0x00000000; 11imm32 r1, 0x00000000; 12imm32 r2, 0x00000000; 13imm32 r3, 0x00000000; 14imm32 r4, 0x00000000; 15imm32 r5, 0x00000000; 16imm32 r6, 0x00000000; 17imm32 r7, 0x00000000; 18 19// test CC = AZ 0-0, 0-1, 1-0, 1-1 20R7 = 0x00; 21ASTAT = R7; // cc = 0, AZ = 0 22CC = AZ; // 23R0 = CC; // 24 25R7 = 0x01; 26ASTAT = R7; // cc = 0, AZ = 1 27CC = AZ; // 28R1 = CC; // 29 30R7 = 0x20; 31ASTAT = R7; // cc = 1, AZ = 0 32CC = AZ; // 33R2 = CC; // 34 35R7 = 0x21; 36ASTAT = R7; // cc = 1, AZ = 1 37CC = AZ; // 38R3 = CC; // 39 40// test cc |= AZ (0-0, 0-1, 1-0, 1-1) 41R7 = 0x00; 42ASTAT = R7; // cc = 0, AZ = 0 43CC |= AZ; // 44R4 = CC; // 45 46R7 = 0x01; 47ASTAT = R7; // cc = 0, AZ = 1 48CC |= AZ; // 49R5 = CC; // 50 51R7 = 0x20; 52ASTAT = R7; // cc = 1, AZ = 0 53CC |= AZ; // 54R6 = CC; // 55 56R7 = 0x21; 57ASTAT = R7; // cc = 1, AZ = 1 58CC |= AZ; // 59R7 = CC; // 60 61CHECKREG r0, 0x00000000; 62CHECKREG r1, 0x00000001; 63CHECKREG r2, 0x00000000; 64CHECKREG r3, 0x00000001; 65CHECKREG r4, 0x00000000; 66CHECKREG r5, 0x00000001; 67CHECKREG r6, 0x00000001; 68CHECKREG r7, 0x00000001; 69 70// test CC &= AZ (0-0, 0-1, 1-0, 1-1) 71R7 = 0x00; 72ASTAT = R7; // cc = 0, AZ = 0 73CC &= AZ; // 74R4 = CC; // 75 76R7 = 0x01; 77ASTAT = R7; // cc = 0, AZ = 1 78CC &= AZ; // 79R5 = CC; // 80 81R7 = 0x20; 82ASTAT = R7; // cc = 1, AZ = 0 83CC &= AZ; // 84R6 = CC; // 85 86R7 = 0x21; 87ASTAT = R7; // cc = 1, AZ = 1 88CC &= AZ; // 89R7 = CC; // 90 91CHECKREG r0, 0x00000000; 92CHECKREG r1, 0x00000001; 93CHECKREG r2, 0x00000000; 94CHECKREG r3, 0x00000001; 95CHECKREG r4, 0x00000000; 96CHECKREG r5, 0x00000000; 97CHECKREG r6, 0x00000000; 98CHECKREG r7, 0x00000001; 99 100// test CC ^= AZ (0-0, 0-1, 1-0, 1-1) 101R7 = 0x00; 102ASTAT = R7; // cc = 0, AZ = 0 103CC ^= AZ; // 104R4 = CC; // 105 106R7 = 0x01; 107ASTAT = R7; // cc = 0, AZ = 1 108CC ^= AZ; // 109R5 = CC; // 110 111R7 = 0x20; 112ASTAT = R7; // cc = 1, AZ = 0 113CC ^= AZ; // 114R6 = CC; // 115 116R7 = 0x21; 117ASTAT = R7; // cc = 1, AZ = 1 118CC ^= AZ; // 119R7 = CC; // 120 121 122CHECKREG r0, 0x00000000; 123CHECKREG r1, 0x00000001; 124CHECKREG r2, 0x00000000; 125CHECKREG r3, 0x00000001; 126CHECKREG r4, 0x00000000; 127CHECKREG r5, 0x00000001; 128CHECKREG r6, 0x00000001; 129CHECKREG r7, 0x00000000; 130 131// test AZ = CC 0-0, 0-1, 1-0, 1-1 132R7 = 0x00; 133ASTAT = R7; // cc = 0, AZ = 0 134AZ = CC; // 135R0 = ASTAT; // 136 137R7 = 0x01; 138ASTAT = R7; // cc = 0, AZ = 1 139AZ = CC; // 140R1 = ASTAT; // 141 142R7 = 0x20; 143ASTAT = R7; // cc = 1, AZ = 0 144AZ = CC; // 145R2 = ASTAT; // 146 147R7 = 0x21; 148ASTAT = R7; // cc = 1, AZ = 1 149AZ = CC; // 150R3 = ASTAT; // 151 152// test AZ |= CC (0-0, 0-1, 1-0, 1-1) 153R7 = 0x00; 154ASTAT = R7; // cc = 0, AZ = 0 155AZ |= CC; // 156R4 = ASTAT; // 157 158R7 = 0x01; 159ASTAT = R7; // cc = 0, AZ = 1 160AZ |= CC; // 161R5 = ASTAT; // 162 163R7 = 0x20; 164ASTAT = R7; // cc = 1, AZ = 0 165AZ |= CC; // 166R6 = ASTAT; // 167 168R7 = 0x21; 169ASTAT = R7; // cc = 1, AZ = 1 170AZ |= CC; // 171R7 = ASTAT; // 172 173CHECKREG r0, 0x00000000; 174CHECKREG r1, 0x00000000; 175CHECKREG r2, 0x00000021; 176CHECKREG r3, 0x00000021; 177CHECKREG r4, 0x00000000; 178CHECKREG r5, 0x00000001; 179CHECKREG r6, 0x00000021; 180CHECKREG r7, 0x00000021; 181 182// test AZ &= CC (0-0, 0-1, 1-0, 1-1) 183R7 = 0x00; 184ASTAT = R7; // cc = 0, AZ = 0 185AZ &= CC; // 186R4 = ASTAT; // 187 188R7 = 0x01; 189ASTAT = R7; // cc = 0, AZ = 1 190AZ &= CC; // 191R5 = ASTAT; // 192 193R7 = 0x20; 194ASTAT = R7; // cc = 1, AZ = 0 195AZ &= CC; // 196R6 = ASTAT; // 197 198R7 = 0x21; 199ASTAT = R7; // cc = 1, AZ = 1 200AZ &= CC; // 201R7 = ASTAT; // 202 203CHECKREG r0, 0x00000000; 204CHECKREG r1, 0x00000000; 205CHECKREG r2, 0x00000021; 206CHECKREG r3, 0x00000021; 207CHECKREG r4, 0x00000000; 208CHECKREG r5, 0x00000000; 209CHECKREG r6, 0x00000020; 210CHECKREG r7, 0x00000021; 211 212// test AZ ^= CC (0-0, 0-1, 1-0, 1-1) 213R7 = 0x00; 214ASTAT = R7; // cc = 0, AZ = 0 215AZ ^= CC; // 216R4 = ASTAT; // 217 218R7 = 0x01; 219ASTAT = R7; // cc = 0, AZ = 1 220AZ ^= CC; // 221R5 = ASTAT; // 222 223R7 = 0x20; 224ASTAT = R7; // cc = 1, AZ = 0 225AZ ^= CC; // 226R6 = ASTAT; // 227 228R7 = 0x21; 229ASTAT = R7; // cc = 1, AZ = 1 230AZ ^= CC; // 231R7 = ASTAT; // 232 233CHECKREG r0, 0x00000000; 234CHECKREG r1, 0x00000000; 235CHECKREG r2, 0x00000021; 236CHECKREG r3, 0x00000021; 237CHECKREG r4, 0x00000000; 238CHECKREG r5, 0x00000001; 239CHECKREG r6, 0x00000021; 240CHECKREG r7, 0x00000020; 241 242 243pass 244