sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 1 | #include <stdio.h> |
| 2 | |
| 3 | unsigned int mem[] = { |
| 4 | 0x121f1e1f, 0, 3, -1, |
| 5 | 0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a, |
| 6 | 0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a, |
| 7 | 0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c |
| 8 | }; |
| 9 | |
| 10 | unsigned int mem1[] = { |
| 11 | 0, 0, 0, 0, |
| 12 | 0, 0, 0, 0, |
| 13 | 0xffffffff, 0, 0, 0, |
| 14 | 0, 0, 0, 0 |
| 15 | }; |
| 16 | |
| 17 | unsigned int mem2[] = { |
| 18 | 0x0000e680, 0x00010700, 0x0000e7dc, 0x0000b0d0, |
| 19 | 0x2ab05fd0, 0x0000b6a0, 0x0000be80, 0x0000de10, |
| 20 | 0x0000df20, 0x2ab05fe0, 0x0000dfd0, 0x00010300 |
| 21 | }; |
| 22 | |
| 23 | // sb $t0, 0($t1) |
| 24 | #define TESTINST1(instruction, RTval, offset, RT, RS) \ |
Elliott Hughes | ed39800 | 2017-06-21 14:41:24 -0700 | [diff] [blame^] | 25 | { \ |
| 26 | unsigned int out; \ |
| 27 | __asm__ volatile( \ |
| 28 | "move $" #RS", %1 \n\t" \ |
| 29 | "li $" #RT", " #RTval" \n\t" \ |
| 30 | instruction " \n\t" \ |
| 31 | "lw %0, "#offset"($"#RS") \n\t" \ |
| 32 | : "=&r" (out) \ |
| 33 | : "r" (mem1), "r" (RTval) \ |
| 34 | : #RS, #RT, "memory" \ |
| 35 | ); \ |
| 36 | printf("%s :: RTval: 0x%x, out: 0x%x\n", \ |
| 37 | instruction, RTval, out); \ |
| 38 | out = 0; \ |
| 39 | __asm__ volatile( \ |
| 40 | "move $" #RS", %1 \n\t" \ |
| 41 | "li $" #RT", " #RTval " \n\t" \ |
| 42 | instruction " \n\t" \ |
| 43 | "lw %0, "#offset"($"#RS") \n\t" \ |
| 44 | : "=&r" (out) \ |
| 45 | : "r" (mem), "r" (RTval) \ |
| 46 | : #RS, #RT, "memory" \ |
| 47 | ); \ |
| 48 | printf("%s :: RTval: 0x%x, out: 0x%x\n", \ |
| 49 | instruction, RTval, out); \ |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 50 | } |
| 51 | |
| 52 | // swl $t0, 3($t1) |
| 53 | // swr $t0, 0($t1) |
Elliott Hughes | ed39800 | 2017-06-21 14:41:24 -0700 | [diff] [blame^] | 54 | #define TESTINSTsw(RTval, offset, RT, RS) \ |
| 55 | { \ |
| 56 | unsigned int out; \ |
| 57 | __asm__ volatile( \ |
| 58 | "move $" #RS", %1\n\t" \ |
| 59 | "addiu $"#RS", $"#RS", "#offset" \n\t" \ |
| 60 | "li $" #RT", " #RTval" \n\t" \ |
| 61 | "swl $t0, 3($t1) \n\t" \ |
| 62 | "swr $t0, 0($t1) \n\t" \ |
| 63 | "lw %0, 0($"#RS") \n\t" \ |
| 64 | : "=&r" (out) \ |
| 65 | : "r" (mem2), "r" (RTval) \ |
| 66 | : #RT, #RS, "memory" \ |
| 67 | ); \ |
| 68 | printf("swl $t0, 3($t1)\nswr $t0, 0($t1)\n" \ |
| 69 | " :: RTval: 0x%x, out: 0x%x\n", \ |
| 70 | RTval, out); \ |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 71 | } |
| 72 | |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 73 | void ppMem(unsigned int* m, int len) |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 74 | { |
| 75 | int i; |
| 76 | printf("MEM1:\n"); |
| 77 | for (i = 0; i < len; i=i+4) |
| 78 | { |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 79 | printf("0x%x, 0x%x, 0x%x, 0x%x\n", m[i], m[i+1], m[i+2], m[i+3]); |
| 80 | m[i] = 0; |
| 81 | m[i+1] = 0; |
| 82 | m[i+2] = 0; |
| 83 | m[i+3] = 0; |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 84 | if (i == 2) |
| 85 | { |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 86 | m[i] = 0xffffffff; |
| 87 | m[i+1] = 0; |
| 88 | m[i+2] = 0; |
| 89 | m[i+3] = 0; |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 90 | } |
| 91 | } |
| 92 | } |
| 93 | |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 94 | void ppMem1(unsigned int* m, int len) |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 95 | { |
| 96 | int i; |
| 97 | printf("MEM:\n"); |
| 98 | for (i = 0; i < len; i=i+4) |
| 99 | { |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 100 | printf("0x%x, 0x%x, 0x%x, 0x%x\n", m[i], m[i+1], m[i+2], m[i+3]); |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 101 | } |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 102 | m[0] = 0x121f1e1f; |
| 103 | m[1] = 0; |
| 104 | m[2] = 3; |
| 105 | m[3] = -1; |
| 106 | m[4] = 0x232f2e2f; |
| 107 | m[5] = 0x242c2b2b; |
| 108 | m[6] = 0x252a2e2b; |
| 109 | m[7] = 0x262d2d2a; |
| 110 | m[8] = 0x3f343f3e; |
| 111 | m[9] = 0x3e353d3c; |
| 112 | m[10] = 0x363a3c3b; |
| 113 | m[11] = 0x3b373b3a; |
| 114 | m[12] = 0x454f4e45; |
| 115 | m[13] = 0x4e464d46; |
| 116 | m[14] = 0x474d474c; |
| 117 | m[15] = 0x4a484a4c; |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 118 | } |
| 119 | |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 120 | void ppMem0(unsigned int* m, int len) |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 121 | { |
| 122 | int i; |
| 123 | printf("MEM:\n"); |
| 124 | for (i = 0; i < len; i=i+4) |
| 125 | { |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 126 | printf("0x%x, 0x%x, 0x%x, 0x%x\n", m[i], m[i+1], m[i+2], m[i+3]); |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 127 | } |
| 128 | |
dejanj | 751c1e6 | 2013-08-15 13:37:29 +0000 | [diff] [blame] | 129 | m[0] = 0x0000e680; |
| 130 | m[1] = 0x00010700; |
| 131 | m[2] = 0x0000e7dc; |
| 132 | m[3] = 0x0000b0d0; |
| 133 | m[4] = 0x2ab05fd0; |
| 134 | m[5] = 0x0000b6a0; |
| 135 | m[6] = 0x0000be80; |
| 136 | m[7] = 0x0000de10; |
| 137 | m[8] = 0x0000df20; |
| 138 | m[9] = 0x2ab05fe0; |
| 139 | m[10] = 0x0000dfd0; |
| 140 | m[11] = 0x00010300; |
sewardj | e584b0e | 2012-06-07 09:32:40 +0000 | [diff] [blame] | 141 | } |
| 142 | |
| 143 | int main() |
| 144 | { |
| 145 | printf("sb\n"); |
| 146 | TESTINST1("sb $t0, 3($t1)", 0, 3, t0, t1); |
| 147 | TESTINST1("sb $t0, 5($t1)", 0x31415927, 5, t0, t1); |
| 148 | TESTINST1("sb $t0, 7($t1)", 0x7fffffff, 7, t0, t1); |
| 149 | TESTINST1("sb $t0, 1($t1)", 0x80000000, 1, t0, t1); |
| 150 | TESTINST1("sb $t0, 2($t1)", 0x80000000, 2, t0, t1); |
| 151 | TESTINST1("sb $t0, 6($t1)", 0x7fffffff, 6, t0, t1); |
| 152 | TESTINST1("sb $t0, 11($t1)", 0x7fffffff, 11, t0, t1); |
| 153 | TESTINST1("sb $t0, 8($t1)", -1, 8, t0, t1); |
| 154 | TESTINST1("sb $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 155 | TESTINST1("sb $t0, 0($t1)", 0x0dd00000, 0, t0, t1); |
| 156 | TESTINST1("sb $t0, 0($t1)", 655, 0, t0, t1); |
| 157 | TESTINST1("sb $t0, 0($t1)", -655, 0, t0, t1); |
| 158 | TESTINST1("sb $t0, 0($t1)", 15, 0, t0, t1); |
| 159 | TESTINST1("sb $t0, 0($t1)", 1, 0, t0, t1); |
| 160 | TESTINST1("sb $t0, 0($t1)", 53, 0, t0, t1); |
| 161 | TESTINST1("sb $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 162 | TESTINST1("sb $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 163 | TESTINST1("sb $t0, 31($t1)", 0xffffffff, 31, t0, t1); |
| 164 | TESTINST1("sb $t0, 35($t1)", 0xffffffff, 35, t0, t1); |
| 165 | TESTINST1("sb $t0, 41($t1)", 0x31415927, 41, t0, t1); |
| 166 | TESTINST1("sb $t0, 42($t1)", 0x7fffffff, 42, t0, t1); |
| 167 | TESTINST1("sb $t0, 45($t1)", 0x80000000, 45, t0, t1); |
| 168 | TESTINST1("sb $t0, 51($t1)", 655, 51, t0, t1); |
| 169 | ppMem(mem1, 16); |
| 170 | ppMem1(mem, 16); |
| 171 | |
| 172 | printf("sh\n"); |
| 173 | TESTINST1("sh $t0, 1($t1)", 0, 1, t0, t1); |
| 174 | TESTINST1("sh $t0, 3($t1)", 0x31415927, 3, t0, t1); |
| 175 | TESTINST1("sh $t0, 5($t1)", 0x7fffffff, 5, t0, t1); |
| 176 | TESTINST1("sh $t0, 7($t1)", 0x80000000, 7, t0, t1); |
| 177 | TESTINST1("sh $t0, 9($t1)", 0x80000000, 9, t0, t1); |
| 178 | TESTINST1("sh $t0, 6($t1)", 0x7fffffff, 6, t0, t1); |
| 179 | TESTINST1("sh $t0, 11($t1)", 0x7fffffff, 11, t0, t1); |
| 180 | TESTINST1("sh $t0, 8($t1)", -1, 8, t0, t1); |
| 181 | TESTINST1("sh $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 182 | TESTINST1("sh $t0, 0($t1)", 0x0dd00000, 0, t0, t1); |
| 183 | TESTINST1("sh $t0, 0($t1)", 655, 0, t0, t1); |
| 184 | TESTINST1("sh $t0, 0($t1)", -655, 0, t0, t1); |
| 185 | TESTINST1("sh $t0, 0($t1)", 15, 0, t0, t1); |
| 186 | TESTINST1("sh $t0, 0($t1)", 1, 0, t0, t1); |
| 187 | TESTINST1("sh $t0, 0($t1)", 53, 0, t0, t1); |
| 188 | TESTINST1("sh $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 189 | TESTINST1("sh $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 190 | TESTINST1("sh $t0, 31($t1)", 0xffffffff, 31, t0, t1); |
| 191 | TESTINST1("sh $t0, 35($t1)", 0xffffffff, 35, t0, t1); |
| 192 | TESTINST1("sh $t0, 41($t1)", 0x31415927, 41, t0, t1); |
| 193 | TESTINST1("sh $t0, 47($t1)", 0x7fffffff, 47, t0, t1); |
| 194 | TESTINST1("sh $t0, 49($t1)", 0x80000000, 49, t0, t1); |
| 195 | TESTINST1("sh $t0, 51($t1)", 655, 51, t0, t1); |
| 196 | ppMem(mem1, 16); |
| 197 | ppMem1(mem, 16); |
| 198 | |
| 199 | printf("sw\n"); |
| 200 | TESTINST1("sw $t0, 1($t1)", 0, 1, t0, t1); |
| 201 | TESTINST1("sw $t0, 3($t1)", 0x31415927, 3, t0, t1); |
| 202 | TESTINST1("sw $t0, 5($t1)", 0x7fffffff, 5, t0, t1); |
| 203 | TESTINST1("sw $t0, 7($t1)", 0x80000000, 7, t0, t1); |
| 204 | TESTINST1("sw $t0, 9($t1)", 0x80000000, 9, t0, t1); |
| 205 | TESTINST1("sw $t0, 6($t1)", 0x7fffffff, 6, t0, t1); |
| 206 | TESTINST1("sw $t0, 15($t1)", 0x7fffffff, 11, t0, t1); |
| 207 | TESTINST1("sw $t0, 8($t1)", -1, 8, t0, t1); |
| 208 | TESTINST1("sw $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 209 | TESTINST1("sw $t0, 0($t1)", 0x0dd00000, 0, t0, t1); |
| 210 | TESTINST1("sw $t0, 0($t1)", 655, 0, t0, t1); |
| 211 | TESTINST1("sw $t0, 0($t1)", -655, 0, t0, t1); |
| 212 | TESTINST1("sw $t0, 0($t1)", 15, 0, t0, t1); |
| 213 | TESTINST1("sw $t0, 0($t1)", 1, 0, t0, t1); |
| 214 | TESTINST1("sw $t0, 0($t1)", 53, 0, t0, t1); |
| 215 | TESTINST1("sw $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 216 | TESTINST1("sw $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 217 | TESTINST1("sw $t0, 31($t1)", 0xffffffff, 31, t0, t1); |
| 218 | TESTINST1("sw $t0, 37($t1)", 0xffffffff, 37, t0, t1); |
| 219 | TESTINST1("sw $t0, 49($t1)", 0x31415927, 49, t0, t1); |
| 220 | TESTINST1("sw $t0, 41($t1)", 0x7fffffff, 41, t0, t1); |
| 221 | TESTINST1("sw $t0, 43($t1)", 0x80000000, 43, t0, t1); |
| 222 | TESTINST1("sw $t0, 51($t1)", 655, 51, t0, t1); |
| 223 | ppMem(mem1, 16); |
| 224 | ppMem1(mem, 16); |
| 225 | |
| 226 | printf("swl\n"); |
| 227 | TESTINST1("swl $t0, 1($t1)", 0, 1, t0, t1); |
| 228 | TESTINST1("swl $t0, 3($t1)", 0x31415927, 3, t0, t1); |
| 229 | TESTINST1("swl $t0, 5($t1)", 0x7fffffff, 5, t0, t1); |
| 230 | TESTINST1("swl $t0, 7($t1)", 0x80000000, 7, t0, t1); |
| 231 | TESTINST1("swl $t0, 9($t1)", 0x80000000, 9, t0, t1); |
| 232 | TESTINST1("swl $t0, 6($t1)", 0x7fffffff, 6, t0, t1); |
| 233 | TESTINST1("swl $t0, 11($t1)", 0x7fffffff, 11, t0, t1); |
| 234 | TESTINST1("swl $t0, 8($t1)", -1, 8, t0, t1); |
| 235 | TESTINST1("swl $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 236 | TESTINST1("swl $t0, 0($t1)", 0x0dd00000, 0, t0, t1); |
| 237 | TESTINST1("swl $t0, 0($t1)", 655, 0, t0, t1); |
| 238 | TESTINST1("swl $t0, 0($t1)", -655, 0, t0, t1); |
| 239 | TESTINST1("swl $t0, 0($t1)", 15, 0, t0, t1); |
| 240 | TESTINST1("swl $t0, 0($t1)", 1, 0, t0, t1); |
| 241 | TESTINST1("swl $t0, 0($t1)", 53, 0, t0, t1); |
| 242 | TESTINST1("swl $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 243 | TESTINST1("swl $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 244 | TESTINST1("swl $t0, 33($t1)", 0xffffffff, 33, t0, t1); |
| 245 | TESTINST1("swl $t0, 35($t1)", 0xffffffff, 35, t0, t1); |
| 246 | TESTINST1("swl $t0, 41($t1)", 0x31415927, 41, t0, t1); |
| 247 | TESTINST1("swl $t0, 45($t1)", 0x7fffffff, 45, t0, t1); |
| 248 | TESTINST1("swl $t0, 49($t1)", 0x80000000, 49, t0, t1); |
| 249 | TESTINST1("swl $t0, 51($t1)", 655, 51, t0, t1); |
| 250 | ppMem(mem1, 16); |
| 251 | ppMem1(mem, 16); |
| 252 | |
| 253 | printf("swr\n"); |
| 254 | TESTINST1("swr $t0, 1($t1)", 0, 1, t0, t1); |
| 255 | TESTINST1("swr $t0, 3($t1)", 0x31415927, 3, t0, t1); |
| 256 | TESTINST1("swr $t0, 5($t1)", 0x7fffffff, 5, t0, t1); |
| 257 | TESTINST1("swr $t0, 7($t1)", 0x80000000, 7, t0, t1); |
| 258 | TESTINST1("swr $t0, 9($t1)", 0x80000000, 9, t0, t1); |
| 259 | TESTINST1("swr $t0, 6($t1)", 0x7fffffff, 6, t0, t1); |
| 260 | TESTINST1("swr $t0, 11($t1)", 0x7fffffff, 11, t0, t1); |
| 261 | TESTINST1("swr $t0, 8($t1)", -1, 8, t0, t1); |
| 262 | TESTINST1("swr $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 263 | TESTINST1("swr $t0, 0($t1)", 0x0dd00000, 0, t0, t1); |
| 264 | TESTINST1("swr $t0, 0($t1)", 655, 0, t0, t1); |
| 265 | TESTINST1("swr $t0, 0($t1)", -655, 0, t0, t1); |
| 266 | TESTINST1("swr $t0, 0($t1)", 15, 0, t0, t1); |
| 267 | TESTINST1("swr $t0, 0($t1)", 1, 0, t0, t1); |
| 268 | TESTINST1("swr $t0, 0($t1)", 53, 0, t0, t1); |
| 269 | TESTINST1("swr $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 270 | TESTINST1("swr $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 271 | TESTINST1("swr $t0, 31($t1)", 0xffffffff, 31, t0, t1); |
| 272 | TESTINST1("swr $t0, 33($t1)", 0xffffffff, 33, t0, t1); |
| 273 | TESTINST1("swr $t0, 45($t1)", 0x31415927, 45, t0, t1); |
| 274 | TESTINST1("swr $t0, 47($t1)", 0x7fffffff, 47, t0, t1); |
| 275 | TESTINST1("swr $t0, 49($t1)", 0x80000000, 49, t0, t1); |
| 276 | TESTINST1("swr $t0, 51($t1)", 655, 51, t0, t1); |
| 277 | ppMem(mem1, 16); |
| 278 | ppMem1(mem, 16); |
| 279 | |
| 280 | printf("ulw\n"); |
| 281 | TESTINST1("ulw $t0, 0($t1)", 0, 0, t0, t1); |
| 282 | TESTINST1("ulw $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 283 | TESTINST1("ulw $t0, 0($t1)", 0x7fffffff, 0, t0, t1); |
| 284 | TESTINST1("ulw $t0, 0($t1)", 0x80000000, 0, t0, t1); |
| 285 | TESTINST1("ulw $t0, 2($t1)", 0x80000000, 2, t0, t1); |
| 286 | TESTINST1("ulw $t0, 6($t1)", 0x7fffffff, 6, t0, t1); |
| 287 | TESTINST1("ulw $t0, 10($t1)", 0x7fffffff, 10, t0, t1); |
| 288 | TESTINST1("ulw $t0, 8($t1)", -1, 8, t0, t1); |
| 289 | TESTINST1("ulw $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 290 | TESTINST1("ulw $t0, 0($t1)", 0x0dd00000, 0, t0, t1); |
| 291 | TESTINST1("ulw $t0, 0($t1)", 655, 0, t0, t1); |
| 292 | TESTINST1("ulw $t0, 0($t1)", -655, 0, t0, t1); |
| 293 | TESTINST1("ulw $t0, 0($t1)", 15, 0, t0, t1); |
| 294 | TESTINST1("ulw $t0, 0($t1)", 1, 0, t0, t1); |
| 295 | TESTINST1("ulw $t0, 0($t1)", 53, 0, t0, t1); |
| 296 | TESTINST1("ulw $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 297 | TESTINST1("ulw $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 298 | TESTINST1("ulw $t0, 32($t1)", 0xffffffff, 32, t0, t1); |
| 299 | TESTINST1("ulw $t0, 36($t1)", 0xffffffff, 36, t0, t1); |
| 300 | TESTINST1("ulw $t0, 40($t1)", 0x31415927, 40, t0, t1); |
| 301 | TESTINST1("ulw $t0, 44($t1)", 0x7fffffff, 44, t0, t1); |
| 302 | TESTINST1("ulw $t0, 48($t1)", 0x80000000, 48, t0, t1); |
| 303 | TESTINST1("ulw $t0, 52($t1)", 655, 52, t0, t1); |
| 304 | ppMem(mem1, 16); |
| 305 | ppMem1(mem, 16); |
| 306 | |
| 307 | printf("usw\n"); |
| 308 | TESTINST1("usw $t0, 0($t1)", 0, 0, t0, t1); |
| 309 | TESTINST1("usw $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 310 | TESTINST1("usw $t0, 0($t1)", 0x7fffffff, 0, t0, t1); |
| 311 | TESTINST1("usw $t0, 0($t1)", 0x80000000, 0, t0, t1); |
| 312 | TESTINST1("usw $t0, 2($t1)", 0x80000000, 2, t0, t1); |
| 313 | TESTINST1("usw $t0, 6($t1)", 0x7fffffff, 6, t0, t1); |
| 314 | TESTINST1("usw $t0, 10($t1)", 0x7fffffff, 10, t0, t1); |
| 315 | TESTINST1("usw $t0, 8($t1)", -1, 8, t0, t1); |
| 316 | TESTINST1("usw $t0, 0($t1)", 0x31415927, 0, t0, t1); |
| 317 | TESTINST1("usw $t0, 0($t1)", 0x0dd00000, 0, t0, t1); |
| 318 | TESTINST1("usw $t0, 0($t1)", 655, 0, t0, t1); |
| 319 | TESTINST1("usw $t0, 0($t1)", -655, 0, t0, t1); |
| 320 | TESTINST1("usw $t0, 0($t1)", 15, 0, t0, t1); |
| 321 | TESTINST1("usw $t0, 0($t1)", 1, 0, t0, t1); |
| 322 | TESTINST1("usw $t0, 0($t1)", 53, 0, t0, t1); |
| 323 | TESTINST1("usw $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 324 | TESTINST1("usw $t0, 2($t1)", 0xffffffff, 2, t0, t1); |
| 325 | TESTINST1("usw $t0, 32($t1)", 0xffffffff, 32, t0, t1); |
| 326 | TESTINST1("usw $t0, 36($t1)", 0xffffffff, 36, t0, t1); |
| 327 | TESTINST1("usw $t0, 40($t1)", 0x31415927, 40, t0, t1); |
| 328 | TESTINST1("usw $t0, 44($t1)", 0x7fffffff, 44, t0, t1); |
| 329 | TESTINST1("usw $t0, 48($t1)", 0x80000000, 48, t0, t1); |
| 330 | TESTINST1("usw $t0, 52($t1)", 655, 52, t0, t1); |
| 331 | ppMem(mem1, 16); |
| 332 | ppMem1(mem, 16); |
| 333 | |
| 334 | printf("swl $t0, 3($t0)\nswr $t0, 0($t0)\n"); |
| 335 | TESTINSTsw(0x4853000, 0, t0, t1); |
| 336 | ppMem0(mem2, 12); |
| 337 | TESTINSTsw(0x4853000, 4, t0, t1); |
| 338 | ppMem0(mem2, 12); |
| 339 | TESTINSTsw(0x4863700, 8, t0, t1); |
| 340 | ppMem0(mem2, 12); |
| 341 | TESTINSTsw(0x48aedd0, 12, t0, t1); |
| 342 | ppMem0(mem2, 12); |
| 343 | TESTINSTsw(0x2aaee700, 16, t0, t1); |
| 344 | ppMem0(mem2, 12); |
| 345 | TESTINSTsw(0x2aaee7ff, 20, t0, t1); |
| 346 | ppMem0(mem2, 12); |
| 347 | TESTINSTsw(0x2aaeffff, 24, t0, t1); |
| 348 | ppMem0(mem2, 12); |
| 349 | TESTINSTsw(0x4863700, 28, t0, t1); |
| 350 | ppMem0(mem2, 12); |
| 351 | TESTINSTsw(0x2aaee700, 32, t0, t1); |
| 352 | ppMem0(mem2, 12); |
| 353 | return 0; |
| 354 | } |
| 355 | |