1 1.1 christos //Original:/proj/frio/dv/testcases/core/c_dsp32shift_a0alr/c_dsp32shift_a0alr.dsp 2 1.1 christos // Spec Reference: dsp32shift a0 ashift, lshift, rot 3 1.1 christos # mach: bfin 4 1.1 christos 5 1.1 christos .include "testutils.inc" 6 1.1 christos start 7 1.1 christos 8 1.1 christos R0 = 0; 9 1.1 christos ASTAT = R0; 10 1.1 christos 11 1.1 christos imm32 r0, 0x11140000; 12 1.1 christos imm32 r1, 0x012C003E; 13 1.1 christos imm32 r2, 0x81359E24; 14 1.1 christos imm32 r3, 0x81459E24; 15 1.1 christos imm32 r4, 0xD159E268; 16 1.1 christos imm32 r5, 0x51626AF2; 17 1.1 christos imm32 r6, 0x9176AF36; 18 1.1 christos imm32 r7, 0xE18BFF86; 19 1.1 christos 20 1.1 christos R0.L = 0; 21 1.1 christos A0 = 0; 22 1.1 christos A0.L = R1.L; 23 1.1 christos A0.H = R1.H; 24 1.1 christos A0 = ASHIFT A0 BY R0.L; /* a0 = 0x00000000 */ 25 1.1 christos R2 = A0.w; /* r5 = 0x00000000 */ 26 1.1 christos CHECKREG r2, 0x012C003E; 27 1.1 christos 28 1.1 christos R1.L = 1; 29 1.1 christos A0.L = R2.L; 30 1.1 christos A0.H = R2.H; 31 1.1 christos A0 = ASHIFT A0 BY R1.L; /* a0 = 0x00000000 */ 32 1.1 christos R3 = A0.w; /* r5 = 0x00000000 */ 33 1.1 christos CHECKREG r3, 0x0258007C; 34 1.1 christos 35 1.1 christos R2.L = 15; 36 1.1 christos A0.L = R3.L; 37 1.1 christos A0.H = R3.H; 38 1.1 christos A0 = ASHIFT A0 BY R2.L; /* a0 = 0x00000000 */ 39 1.1 christos R4 = A0.w; /* r5 = 0x00000000 */ 40 1.1 christos CHECKREG r4, 0x003E0000; 41 1.1 christos 42 1.1 christos R3.L = 31; 43 1.1 christos A0.L = R4.L; 44 1.1 christos A0.H = R4.H; 45 1.1 christos A0 = ASHIFT A0 BY R3.L; /* a0 = 0x00000000 */ 46 1.1 christos R5 = A0.w; /* r5 = 0x00000000 */ 47 1.1 christos CHECKREG r5, 0x00000000; 48 1.1 christos 49 1.1 christos R4.L = -1; 50 1.1 christos A0.L = R5.L; 51 1.1 christos A0.H = R5.H; 52 1.1 christos A0 = ASHIFT A0 BY R4.L; /* a0 = 0x00000000 */ 53 1.1 christos R6 = A0.w; /* r5 = 0x00000000 */ 54 1.1 christos CHECKREG r6, 0x00000000; 55 1.1 christos 56 1.1 christos R5.L = -16; 57 1.1 christos A0 = 0; 58 1.1 christos A0.L = R6.L; 59 1.1 christos A0.H = R6.H; 60 1.1 christos A0 = ASHIFT A0 BY R5.L; /* a0 = 0x00000000 */ 61 1.1 christos R7 = A0.w; /* r5 = 0x00000000 */ 62 1.1 christos CHECKREG r7, 0x00000000; 63 1.1 christos 64 1.1 christos R6.L = -31; 65 1.1 christos A0.L = R7.L; 66 1.1 christos A0.H = R7.H; 67 1.1 christos A0 = ASHIFT A0 BY R6.L; /* a0 = 0x00000000 */ 68 1.1 christos R0 = A0.w; /* r5 = 0x00000000 */ 69 1.1 christos CHECKREG r0, 0x00000000; 70 1.1 christos 71 1.1 christos R7.L = -32; 72 1.1 christos A0.L = R0.L; 73 1.1 christos A0.H = R0.H; 74 1.1 christos A0 = ASHIFT A0 BY R7.L; /* a0 = 0x00000000 */ 75 1.1 christos R1 = A0.w; /* r5 = 0x00000000 */ 76 1.1 christos CHECKREG r1, 0x00000000; 77 1.1 christos 78 1.1 christos imm32 r0, 0x12340000; 79 1.1 christos imm32 r1, 0x028C003E; 80 1.1 christos imm32 r2, 0x82159E24; 81 1.1 christos imm32 r3, 0x82159E24; 82 1.1 christos imm32 r4, 0xD259E268; 83 1.1 christos imm32 r5, 0x52E26AF2; 84 1.1 christos imm32 r6, 0x9226AF36; 85 1.1 christos imm32 r7, 0xE26BFF86; 86 1.1 christos 87 1.1 christos R0.L = 0; 88 1.1 christos A0 = 0; 89 1.1 christos A0.L = R1.L; 90 1.1 christos A0.H = R1.H; 91 1.1 christos A0 = LSHIFT A0 BY R0.L; /* a0 = 0x00000000 */ 92 1.1 christos R2 = A0.w; /* r5 = 0x00000000 */ 93 1.1 christos CHECKREG r2, 0x028C003E; 94 1.1 christos 95 1.1 christos R1.L = 1; 96 1.1 christos A0.L = R2.L; 97 1.1 christos A0.H = R2.H; 98 1.1 christos A0 = LSHIFT A0 BY R1.L; /* a0 = 0x00000000 */ 99 1.1 christos R3 = A0.w; /* r5 = 0x00000000 */ 100 1.1 christos CHECKREG r3, 0x0518007C; 101 1.1 christos 102 1.1 christos R2.L = 15; 103 1.1 christos A0.L = R3.L; 104 1.1 christos A0.H = R3.H; 105 1.1 christos A0 = LSHIFT A0 BY R2.L; /* a0 = 0x00000000 */ 106 1.1 christos R4 = A0.w; /* r5 = 0x00000000 */ 107 1.1 christos CHECKREG r4, 0x003E0000; 108 1.1 christos 109 1.1 christos R3.L = 31; 110 1.1 christos A0.L = R4.L; 111 1.1 christos A0.H = R4.H; 112 1.1 christos A0 = LSHIFT A0 BY R3.L; /* a0 = 0x00000000 */ 113 1.1 christos R5 = A0.w; /* r5 = 0x00000000 */ 114 1.1 christos CHECKREG r5, 0x00000000; 115 1.1 christos 116 1.1 christos R4.L = -1; 117 1.1 christos A0.L = R5.L; 118 1.1 christos A0.H = R5.H; 119 1.1 christos A0 = LSHIFT A0 BY R4.L; /* a0 = 0x00000000 */ 120 1.1 christos R6 = A0.w; /* r5 = 0x00000000 */ 121 1.1 christos CHECKREG r6, 0x00000000; 122 1.1 christos 123 1.1 christos R5.L = -16; 124 1.1 christos A0 = 0; 125 1.1 christos A0.L = R6.L; 126 1.1 christos A0.H = R6.H; 127 1.1 christos A0 = LSHIFT A0 BY R5.L; /* a0 = 0x00000000 */ 128 1.1 christos R7 = A0.w; /* r5 = 0x00000000 */ 129 1.1 christos CHECKREG r7, 0x00000000; 130 1.1 christos 131 1.1 christos R6.L = -31; 132 1.1 christos A0.L = R7.L; 133 1.1 christos A0.H = R7.H; 134 1.1 christos A0 = LSHIFT A0 BY R6.L; /* a0 = 0x00000000 */ 135 1.1 christos R0 = A0.w; /* r5 = 0x00000000 */ 136 1.1 christos CHECKREG r0, 0x00000000; 137 1.1 christos 138 1.1 christos R7.L = -32; 139 1.1 christos A0.L = R0.L; 140 1.1 christos A0.H = R0.H; 141 1.1 christos A0 = LSHIFT A0 BY R7.L; /* a0 = 0x00000000 */ 142 1.1 christos R1 = A0.w; /* r5 = 0x00000000 */ 143 1.1 christos CHECKREG r1, 0x00000000; 144 1.1 christos 145 1.1 christos imm32 r0, 0x13340000; 146 1.1 christos imm32 r1, 0x038C003E; 147 1.1 christos imm32 r2, 0x83159E24; 148 1.1 christos imm32 r3, 0x83159E24; 149 1.1 christos imm32 r4, 0xD359E268; 150 1.1 christos imm32 r5, 0x53E26AF2; 151 1.1 christos imm32 r6, 0x9326AF36; 152 1.1 christos imm32 r7, 0xE36BFF86; 153 1.1 christos 154 1.1 christos R0.L = 0; 155 1.1 christos A0 = 0; 156 1.1 christos A0.L = R1.L; 157 1.1 christos A0.H = R1.H; 158 1.1 christos A0 = ROT A0 BY R0.L; /* a0 = 0x00000000 */ 159 1.1 christos R2 = A0.w; /* r5 = 0x00000000 */ 160 1.1 christos CHECKREG r2, 0x038C003E; 161 1.1 christos 162 1.1 christos R1.L = 1; 163 1.1 christos A0.L = R2.L; 164 1.1 christos A0.H = R2.H; 165 1.1 christos A0 = ROT A0 BY R1.L; /* a0 = 0x00000000 */ 166 1.1 christos R3 = A0.w; /* r5 = 0x00000000 */ 167 1.1 christos CHECKREG r3, 0x0718007C; 168 1.1 christos 169 1.1 christos R2.L = 15; 170 1.1 christos A0.L = R3.L; 171 1.1 christos A0.H = R3.H; 172 1.1 christos A0 = ROT A0 BY R2.L; /* a0 = 0x00000000 */ 173 1.1 christos R4 = A0.w; /* r5 = 0x00000000 */ 174 1.1 christos CHECKREG r4, 0x003E0001; 175 1.1 christos 176 1.1 christos R3.L = 31; 177 1.1 christos A0.L = R4.L; 178 1.1 christos A0.H = R4.H; 179 1.1 christos A0 = ROT A0 BY R3.L; /* a0 = 0x00000000 */ 180 1.1 christos R5 = A0.w; /* r5 = 0x00000000 */ 181 1.1 christos CHECKREG r5, 0xE3000F80; 182 1.1 christos 183 1.1 christos R4.L = -1; 184 1.1 christos A0.L = R5.L; 185 1.1 christos A0.H = R5.H; 186 1.1 christos A0 = ROT A0 BY R4.L; /* a0 = 0x00000000 */ 187 1.1 christos R6 = A0.w; /* r5 = 0x00000000 */ 188 1.1 christos CHECKREG r6, 0x718007C0; 189 1.1 christos 190 1.1 christos R5.L = -16; 191 1.1 christos A0.L = R6.L; 192 1.1 christos A0.H = R6.H; 193 1.1 christos A0 = ROT A0 BY R5.L; /* a0 = 0x00000000 */ 194 1.1 christos R7 = A0.w; /* r5 = 0x00000000 */ 195 1.1 christos CHECKREG r7, 0x80007180; 196 1.1 christos 197 1.1 christos R6.L = -31; 198 1.1 christos A0.L = R7.L; 199 1.1 christos A0.H = R7.H; 200 1.1 christos A0 = ROT A0 BY R6.L; /* a0 = 0x00000000 */ 201 1.1 christos R0 = A0.w; /* r5 = 0x00000000 */ 202 1.1 christos CHECKREG r0, 0x01C6001F; 203 1.1 christos 204 1.1 christos R7.L = -32; 205 1.1 christos A0.L = R0.L; 206 1.1 christos A0.H = R0.H; 207 1.1 christos A0 = ROT A0 BY R7.L; /* a0 = 0x00000000 */ 208 1.1 christos R1 = A0.w; /* r5 = 0x00000000 */ 209 1.1 christos CHECKREG r1, 0x8C003E00; 210 1.1 christos 211 1.1 christos pass 212