1#include <stdio.h> 2 3#define TESTINST1(instruction, RSval, RTval, RD, RS, RT) \ 4{ \ 5 unsigned int out; \ 6 __asm__ volatile( \ 7 "li $" #RD ", 0\n\t" \ 8 "move $" #RS ", %1\n\t" \ 9 "move $" #RT ", %2\n\t" \ 10 instruction "\n\t" \ 11 "move %0, $" #RD "\n\t" \ 12 : "=&r" (out) \ 13 : "r" (RSval), "r" (RTval) \ 14 : #RD, #RS, #RT, "cc", "memory" \ 15 ); \ 16 printf("%s :: rd 0x%08x rs 0x%08x, rt 0x%08x\n", \ 17 instruction, out, RSval, RTval); \ 18} 19 20#define TESTINST2(instruction, RSval, imm, RT, RS) \ 21{ \ 22 unsigned int out; \ 23 __asm__ volatile( \ 24 "move $" #RS ", %1\n\t" \ 25 instruction "\n\t" \ 26 "move %0, $" #RT "\n\t" \ 27 : "=&r" (out) \ 28 : "r" (RSval) \ 29 : #RT, #RS, "cc", "memory" \ 30 ); \ 31 printf("%s :: rt 0x%08x rs 0x%08x, imm 0x%08x\n", \ 32 instruction, out, RSval, imm); \ 33} 34 35#define TESTINST3(instruction, RSval, RD, RS) \ 36{ \ 37 unsigned int out; \ 38 __asm__ volatile( \ 39 "move $" #RS ", %1\n\t" \ 40 instruction "\n\t" \ 41 "move %0, $" #RD "\n\t" \ 42 : "=&r" (out) \ 43 : "r" (RSval) \ 44 : #RD, #RS, "cc", "memory" \ 45 ); \ 46 printf("%s :: rd 0x%08x rs 0x%08x\n", \ 47 instruction, out, RSval); \ 48} 49 50#define TESTINST3a(instruction, RSval, RTval, RS, RT) \ 51{ \ 52 unsigned int HI; \ 53 unsigned int LO; \ 54 __asm__ volatile( \ 55 "li $" #RS ", 0x0\n\t" \ 56 "mthi $" #RS"\n\t" \ 57 "mtlo $" #RS"\n\t" \ 58 "move $" #RS ", %2\n\t" \ 59 "move $" #RT ", %3\n\t" \ 60 instruction "\n\t" \ 61 "mfhi %0 \n\t" \ 62 "mflo %1 \n\t" \ 63 : "=&r" (HI), "=&r" (LO) \ 64 : "r" (RSval), "r"(RTval) \ 65 : #RS, #RT, "cc", "memory" \ 66 ); \ 67 printf("%s :: rs 0x%08x rt 0x%08x HI 0x%08x LO 0x%08x \n", \ 68 instruction, RSval, RTval, HI, LO); \ 69} 70 71#define TESTINST4(instruction, RTval, RSval, RT, RS, pos, size) \ 72{ \ 73 unsigned int out; \ 74 __asm__ volatile( \ 75 "move $" #RT ", %1\n\t" \ 76 "move $" #RS ", %2\n\t" \ 77 instruction "\n\t" \ 78 "move %0, $" #RT "\n\t" \ 79 : "=&r" (out) \ 80 : "r" (RTval), "r" (RSval) \ 81 : #RT, #RS, "cc", "memory" \ 82 ); \ 83 printf("%s :: rt 0x%08x rs 0x%08x, pos 0x%08x, size 0x%08x\n", \ 84 instruction, out, RSval, pos, size); \ 85} 86 87const unsigned int mem[] = { 88 0x121f1e1f, 0, 3, -1, 89 0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a, 90 0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a, 91 0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c 92}; 93 94// load $t0, 0($t1) 95#define TESTINSN5LOAD(instruction, RTval, offset, RT) \ 96{ \ 97 unsigned int out; \ 98 __asm__ volatile( \ 99 "move $t1, %1\n\t" \ 100 "li $t0, " #RTval"\n\t" \ 101 instruction "\n\t" \ 102 "move %0, $" #RT "\n\t" \ 103 : "=&r" (out) \ 104 : "r" (mem), "r" (RTval) \ 105 : #RT, "cc", "memory" \ 106 ); \ 107 printf("%s :: rt 0x%08x\n", \ 108 instruction, out); \ 109} 110 111#define TESTINSN_HILO(RSval) \ 112{ \ 113 unsigned int HI; \ 114 unsigned int LO; \ 115 __asm__ volatile( \ 116 "move $t0, %2\n\t" \ 117 "mthi $t0\n\t" \ 118 "addiu $t0, $t0, 0xffff\n\t" \ 119 "mtlo $t0\n\t" \ 120 "mfhi %0\n\t" \ 121 "mflo %1\n\t" \ 122 : "=&r" (HI), "=&r" (LO) \ 123 : "r" (RSval)\ 124 : "cc", "memory" \ 125 ); \ 126 printf("mfhi mflo :: HI: 0x%x, LO: 0x%x\n", \ 127 HI, LO); \ 128} 129 130int main(int argc, char **argv) 131{ 132 printf("ADD\n"); 133 TESTINST1("add $t0, $t1, $t2", 0, 0, t0, t1, t2); 134 TESTINST1("add $t0, $t1, $t2", 0, 1, t0, t1, t2); 135 TESTINST1("add $t0, $t1, $t2", 1, 0, t0, t1, t2); 136 TESTINST1("add $t0, $t1, $t2", 1, 1, t0, t1, t2); 137 TESTINST1("add $t0, $t1, $t2", 0, -1, t0, t1, t2); 138 TESTINST1("add $t0, $t1, $t2", 1, -1, t0, t1, t2); 139 TESTINST1("add $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 140 TESTINST1("add $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2); 141 TESTINST1("add $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2); 142 TESTINST1("add $t0, $t1, $t2", -1, 0, t0, t1, t2); 143 TESTINST1("add $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 144 TESTINST1("add $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 145 146 printf("ADDI\n"); 147 TESTINST2("addi $t0, $t1, 0", 0, 0, t0, t1); 148 TESTINST2("addi $t0, $t1, 1", 0, 1, t0, t1); 149 TESTINST2("addi $t0, $t1, 1", 1, 0, t0, t1); 150 TESTINST2("addi $t0, $t1, 1", 1, 1, t0, t1); 151 TESTINST2("addi $t0, $t1, -1", 0, -1, t0, t1); 152 TESTINST2("addi $t0, $t1, -1", 1, -1, t0, t1); 153 TESTINST2("addi $t0, $t1, 0", 0x80000000, 0, t0, t1); 154 TESTINST2("addi $t0, $t1, 0", -1, 0, t0, t1); 155 TESTINST2("addi $t0, $t1, 0", 0x80000000, 0, t0, t1); 156 157 printf("ADDIU\n"); 158 TESTINST2("addiu $t0, $t1, 0", 0, 0, t0, t1); 159 TESTINST2("addiu $t0, $t1, 1", 0, 1, t0, t1); 160 TESTINST2("addiu $t0, $t1, 1", 1, 0, t0, t1); 161 TESTINST2("addiu $t0, $t1, 1", 1, 1, t0, t1); 162 TESTINST2("addiu $t0, $t1, -1", 0, -1, t0, t1); 163 TESTINST2("addiu $t0, $t1, -1", 1, -1, t0, t1); 164 TESTINST2("addiu $t0, $t1, 0", 0x80000000, 0, t0, t1); 165 TESTINST2("addiu $t0, $t1, 0", -1, 0, t0, t1); 166 TESTINST2("addiu $t0, $t1, 0", 0x80000000, 0, t0, t1); 167 168 printf("ADDU\n"); 169 TESTINST1("addu $t0, $t1, $t2", 0, 0, t0, t1, t2); 170 TESTINST1("addu $t0, $t1, $t2", 0, 1, t0, t1, t2); 171 TESTINST1("addu $t0, $t1, $t2", 1, 0, t0, t1, t2); 172 TESTINST1("addu $t0, $t1, $t2", 1, 1, t0, t1, t2); 173 TESTINST1("addu $t0, $t1, $t2", 0, -1, t0, t1, t2); 174 TESTINST1("addu $t0, $t1, $t2", 1, -1, t0, t1, t2); 175 TESTINST1("addu $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2); 176 TESTINST1("addu $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2); 177 TESTINST1("addu $t0, $t1, $t2", 0, 0, t0, t1, t2); 178 TESTINST1("addu $t0, $t1, $t2", 1, 0, t0, t1, t2); 179 TESTINST1("addu $t0, $t1, $t2", 0, 1, t0, t1, t2); 180 TESTINST1("addu $t0, $t1, $t2", -1, 0, t0, t1, t2); 181 TESTINST1("addu $t0, $t1, $t2", 0, -1, t0, t1, t2); 182 TESTINST1("addu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 183 TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 184 TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 185 TESTINST1("addu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 186 TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0x7fffffff, t0, t1, t2); 187 TESTINST1("addu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 188 189 printf("AND\n"); 190 TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 191 TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 192 TESTINST1("and $t0, $t1, $t2", 0, 255, t0, t1, t2); 193 TESTINST1("and $t0, $t1, $t2", -1, 0, t0, t1, t2); 194 TESTINST1("and $t0, $t1, $t2", 0, 1, t0, t1, t2); 195 TESTINST1("and $t0, $t1, $t2", 0, 0, t0, t1, t2); 196 TESTINST1("and $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 197 TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 198 TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 199 TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 200 TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 201 TESTINST1("and $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 202 TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 203 TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 204 TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 205 TESTINST1("and $t0, $t1, $t2", 0, 255, t0, t1, t2); 206 TESTINST1("and $t0, $t1, $t2", 1, 0, t0, t1, t2); 207 TESTINST1("and $t0, $t1, $t2", 0, 1, t0, t1, t2); 208 TESTINST1("and $t0, $t1, $t2", -1, 0, t0, t1, t2); 209 TESTINST1("and $t0, $t1, $t2", 0, -1, t0, t1, t2); 210 TESTINST1("and $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 211 TESTINST1("and $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 212 TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 213 TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 214 TESTINST1("and $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 215 TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 216 217 printf("ANDI\n"); 218 TESTINST2("andi $t0, $t1, 1", 0, 1, t0, t1); 219 TESTINST2("andi $t0, $t1, 0", 1, 0, t0, t1); 220 TESTINST2("andi $t0, $t1, 1", 1, 1, t0, t1); 221 TESTINST2("andi $t0, $t1, 1", 0x7fffffff, 0, t0, t1); 222 TESTINST2("andi $t0, $t1, 0", 0x80000000, 0, t0, t1); 223 TESTINST2("andi $t0, $t1, 0x3145", 0xffffffff, 0x3145, t0, t1); 224 225 printf("CLO\n"); 226 TESTINST3("clo $t0, $t1", 0, t0, t1); 227 TESTINST3("clo $t0, $t1", 1, t0, t1); 228 TESTINST3("clo $t0, $t1", 0x10, t0, t1); 229 TESTINST3("clo $t0, $t1", 0xffffffff, t0, t1); 230 231 printf("CLZ\n"); 232 TESTINST3("clz $t0, $t1", 0, t0, t1); 233 TESTINST3("clz $t0, $t1", 1, t0, t1); 234 TESTINST3("clz $t0, $t1", 0x10, t0, t1); 235 TESTINST3("clz $t0, $t1", 0xffffffff, t0, t1); 236 237 printf("DIV\n"); 238 TESTINST3a("div $t0, $t1", 0x6, 0x2, t0, t1); 239 TESTINST3a("div $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 240 TESTINST3a("div $t0, $t1", 0xffffffff, 0x1, t0, t1); 241 TESTINST3a("div $t0, $t1", 0x1, 0xffffffff, t0, t1); 242 TESTINST3a("div $t0, $t1", 0x2, 0x6, t0, t1); 243 244 printf("DIVU\n"); 245 TESTINST3a("divu $t0, $t1", 0x6, 0x2, t0, t1); 246 TESTINST3a("divu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 247 TESTINST3a("divu $t0, $t1", 0xffffffff, 0x1, t0, t1); 248 TESTINST3a("divu $t0, $t1", 0x1, 0xffffffff, t0, t1); 249 TESTINST3a("divu $t0, $t1", 0x2, 0x6, t0, t1); 250 TESTINST3a("divu $t0, $t1", 0x0, 0x2, t0, t1); 251 252#if (__mips==32) && (__mips_isa_rev>=2) 253 printf("EXT\n"); 254 TESTINST4("ext $t0, $t1, 0, 1", 0x0, 0x0, t0, t1, 0, 1); 255 TESTINST4("ext $t0, $t1, 0, 1", 0x0, 0xffffffff, t0, t1, 0, 1); 256 TESTINST4("ext $t0, $t1, 0, 1", 0x0, 0x98765432, t0, t1, 0, 1); 257 TESTINST4("ext $t0, $t1, 0, 1", 0x0, 0xff865421, t0, t1, 0, 1); 258 TESTINST4("ext $t0, $t1, 0, 1", 0xffffffff, 0x0, t0, t1, 0, 1); 259 TESTINST4("ext $t0, $t1, 0, 1", 0xffffffff, 0xffffffff, t0, t1, 0, 1); 260 TESTINST4("ext $t0, $t1, 0, 1", 0xffffffff, 0x98765432, t0, t1, 0, 1); 261 TESTINST4("ext $t0, $t1, 0, 1", 0xffffffff, 0xff865421, t0, t1, 0, 1); 262 TESTINST4("ext $t0, $t1, 0, 1", 0x98765432, 0x0, t0, t1, 0, 1); 263 TESTINST4("ext $t0, $t1, 0, 1", 0x98765432, 0xffffffff, t0, t1, 0, 1); 264 TESTINST4("ext $t0, $t1, 0, 1", 0x98765432, 0x98765432, t0, t1, 0, 1); 265 TESTINST4("ext $t0, $t1, 0, 1", 0x98765432, 0xff865421, t0, t1, 0, 1); 266 TESTINST4("ext $t0, $t1, 0, 1", 0xff865421, 0x0, t0, t1, 0, 1); 267 TESTINST4("ext $t0, $t1, 0, 1", 0xff865421, 0xffffffff, t0, t1, 0, 1); 268 TESTINST4("ext $t0, $t1, 0, 1", 0xff865421, 0x98765432, t0, t1, 0, 1); 269 TESTINST4("ext $t0, $t1, 0, 1", 0xff865421, 0xff865421, t0, t1, 0, 1); 270 TESTINST4("ext $t0, $t1, 0, 4", 0x0, 0x0, t0, t1, 0, 4); 271 TESTINST4("ext $t0, $t1, 0, 4", 0x0, 0xffffffff, t0, t1, 0, 4); 272 TESTINST4("ext $t0, $t1, 0, 4", 0x0, 0x98765432, t0, t1, 0, 4); 273 TESTINST4("ext $t0, $t1, 0, 4", 0x0, 0xff865421, t0, t1, 0, 4); 274 TESTINST4("ext $t0, $t1, 0, 4", 0xffffffff, 0x0, t0, t1, 0, 4); 275 TESTINST4("ext $t0, $t1, 0, 4", 0xffffffff, 0xffffffff, t0, t1, 0, 4); 276 TESTINST4("ext $t0, $t1, 0, 4", 0xffffffff, 0x98765432, t0, t1, 0, 4); 277 TESTINST4("ext $t0, $t1, 0, 4", 0xffffffff, 0xff865421, t0, t1, 0, 4); 278 TESTINST4("ext $t0, $t1, 0, 4", 0x98765432, 0x0, t0, t1, 0, 4); 279 TESTINST4("ext $t0, $t1, 0, 4", 0x98765432, 0xffffffff, t0, t1, 0, 4); 280 TESTINST4("ext $t0, $t1, 0, 4", 0x98765432, 0x98765432, t0, t1, 0, 4); 281 TESTINST4("ext $t0, $t1, 0, 4", 0x98765432, 0xff865421, t0, t1, 0, 4); 282 TESTINST4("ext $t0, $t1, 0, 4", 0xff865421, 0x0, t0, t1, 0, 4); 283 TESTINST4("ext $t0, $t1, 0, 4", 0xff865421, 0xffffffff, t0, t1, 0, 4); 284 TESTINST4("ext $t0, $t1, 0, 4", 0xff865421, 0x98765432, t0, t1, 0, 4); 285 TESTINST4("ext $t0, $t1, 0, 4", 0xff865421, 0xff865421, t0, t1, 0, 4); 286 TESTINST4("ext $t0, $t1, 0, 16", 0x0, 0x0, t0, t1, 0, 16); 287 TESTINST4("ext $t0, $t1, 0, 16", 0x0, 0xffffffff, t0, t1, 0, 16); 288 TESTINST4("ext $t0, $t1, 0, 16", 0x0, 0x98765432, t0, t1, 0, 16); 289 TESTINST4("ext $t0, $t1, 0, 16", 0x0, 0xff865421, t0, t1, 0, 16); 290 TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0x0, t0, t1, 0, 16); 291 TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0xffffffff, t0, t1, 0, 16); 292 TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0x98765432, t0, t1, 0, 16); 293 TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0xff865421, t0, t1, 0, 16); 294 TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0x0, t0, t1, 0, 16); 295 TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0xffffffff, t0, t1, 0, 16); 296 TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0x98765432, t0, t1, 0, 16); 297 TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0xff865421, t0, t1, 0, 16); 298 TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0x0, t0, t1, 0, 16); 299 TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0xffffffff, t0, t1, 0, 16); 300 TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0x98765432, t0, t1, 0, 16); 301 TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0xff865421, t0, t1, 0, 16); 302 TESTINST4("ext $t0, $t1, 0, 32", 0x0, 0x0, t0, t1, 0, 32); 303 TESTINST4("ext $t0, $t1, 0, 32", 0x0, 0xffffffff, t0, t1, 0, 32); 304 TESTINST4("ext $t0, $t1, 0, 32", 0x0, 0x98765432, t0, t1, 0, 32); 305 TESTINST4("ext $t0, $t1, 0, 32", 0x0, 0xff865421, t0, t1, 0, 32); 306 TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0x0, t0, t1, 0, 32); 307 TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0xffffffff, t0, t1, 0, 32); 308 TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0x98765432, t0, t1, 0, 32); 309 TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0xff865421, t0, t1, 0, 32); 310 TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0x0, t0, t1, 0, 32); 311 TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0xffffffff, t0, t1, 0, 32); 312 TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0x98765432, t0, t1, 0, 32); 313 TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0xff865421, t0, t1, 0, 32); 314 TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0x0, t0, t1, 0, 32); 315 TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0xffffffff, t0, t1, 0, 32); 316 TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0x98765432, t0, t1, 0, 32); 317 TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0xff865421, t0, t1, 0, 32); 318 319 TESTINST4("ext $t0, $t1, 4, 1", 0x0, 0x0, t0, t1, 4, 1); 320 TESTINST4("ext $t0, $t1, 4, 1", 0x0, 0xffffffff, t0, t1, 4, 1); 321 TESTINST4("ext $t0, $t1, 4, 1", 0x0, 0x98765432, t0, t1, 4, 1); 322 TESTINST4("ext $t0, $t1, 4, 1", 0x0, 0xff865421, t0, t1, 4, 1); 323 TESTINST4("ext $t0, $t1, 4, 1", 0xffffffff, 0x0, t0, t1, 4, 1); 324 TESTINST4("ext $t0, $t1, 4, 1", 0xffffffff, 0xffffffff, t0, t1, 4, 1); 325 TESTINST4("ext $t0, $t1, 4, 1", 0xffffffff, 0x98765432, t0, t1, 4, 1); 326 TESTINST4("ext $t0, $t1, 4, 1", 0xffffffff, 0xff865421, t0, t1, 4, 1); 327 TESTINST4("ext $t0, $t1, 4, 1", 0x98765432, 0x0, t0, t1, 4, 1); 328 TESTINST4("ext $t0, $t1, 4, 1", 0x98765432, 0xffffffff, t0, t1, 4, 1); 329 TESTINST4("ext $t0, $t1, 4, 1", 0x98765432, 0x98765432, t0, t1, 4, 1); 330 TESTINST4("ext $t0, $t1, 4, 1", 0x98765432, 0xff865421, t0, t1, 4, 1); 331 TESTINST4("ext $t0, $t1, 4, 1", 0xff865421, 0x0, t0, t1, 4, 1); 332 TESTINST4("ext $t0, $t1, 4, 1", 0xff865421, 0xffffffff, t0, t1, 4, 1); 333 TESTINST4("ext $t0, $t1, 4, 1", 0xff865421, 0x98765432, t0, t1, 4, 1); 334 TESTINST4("ext $t0, $t1, 4, 1", 0xff865421, 0xff865421, t0, t1, 4, 1); 335 TESTINST4("ext $t0, $t1, 4, 4", 0x0, 0x0, t0, t1, 4, 4); 336 TESTINST4("ext $t0, $t1, 4, 4", 0x0, 0xffffffff, t0, t1, 4, 4); 337 TESTINST4("ext $t0, $t1, 4, 4", 0x0, 0x98765432, t0, t1, 4, 4); 338 TESTINST4("ext $t0, $t1, 4, 4", 0x0, 0xff865421, t0, t1, 4, 4); 339 TESTINST4("ext $t0, $t1, 4, 4", 0xffffffff, 0x0, t0, t1, 4, 4); 340 TESTINST4("ext $t0, $t1, 4, 4", 0xffffffff, 0xffffffff, t0, t1, 4, 4); 341 TESTINST4("ext $t0, $t1, 4, 4", 0xffffffff, 0x98765432, t0, t1, 4, 4); 342 TESTINST4("ext $t0, $t1, 4, 4", 0xffffffff, 0xff865421, t0, t1, 4, 4); 343 TESTINST4("ext $t0, $t1, 4, 4", 0x98765432, 0x0, t0, t1, 4, 4); 344 TESTINST4("ext $t0, $t1, 4, 4", 0x98765432, 0xffffffff, t0, t1, 4, 4); 345 TESTINST4("ext $t0, $t1, 4, 4", 0x98765432, 0x98765432, t0, t1, 4, 4); 346 TESTINST4("ext $t0, $t1, 4, 4", 0x98765432, 0xff865421, t0, t1, 4, 4); 347 TESTINST4("ext $t0, $t1, 4, 4", 0xff865421, 0x0, t0, t1, 4, 4); 348 TESTINST4("ext $t0, $t1, 4, 4", 0xff865421, 0xffffffff, t0, t1, 4, 4); 349 TESTINST4("ext $t0, $t1, 4, 4", 0xff865421, 0x98765432, t0, t1, 4, 4); 350 TESTINST4("ext $t0, $t1, 4, 4", 0xff865421, 0xff865421, t0, t1, 4, 4); 351 TESTINST4("ext $t0, $t1, 4, 16", 0x0, 0x0, t0, t1, 4, 16); 352 TESTINST4("ext $t0, $t1, 4, 16", 0x0, 0xffffffff, t0, t1, 4, 16); 353 TESTINST4("ext $t0, $t1, 4, 16", 0x0, 0x98765432, t0, t1, 4, 16); 354 TESTINST4("ext $t0, $t1, 4, 16", 0x0, 0xff865421, t0, t1, 4, 16); 355 TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0x0, t0, t1, 4, 16); 356 TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0xffffffff, t0, t1, 4, 16); 357 TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0x98765432, t0, t1, 4, 16); 358 TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0xff865421, t0, t1, 4, 16); 359 TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0x0, t0, t1, 4, 16); 360 TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0xffffffff, t0, t1, 4, 16); 361 TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0x98765432, t0, t1, 4, 16); 362 TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0xff865421, t0, t1, 4, 16); 363 TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0x0, t0, t1, 4, 16); 364 TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0xffffffff, t0, t1, 4, 16); 365 TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0x98765432, t0, t1, 4, 16); 366 TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0xff865421, t0, t1, 4, 16); 367 TESTINST4("ext $t0, $t1, 4, 28", 0x0, 0x0, t0, t1, 4, 28); 368 TESTINST4("ext $t0, $t1, 4, 28", 0x0, 0xffffffff, t0, t1, 4, 28); 369 TESTINST4("ext $t0, $t1, 4, 28", 0x0, 0x98765432, t0, t1, 4, 28); 370 TESTINST4("ext $t0, $t1, 4, 28", 0x0, 0xff865421, t0, t1, 4, 28); 371 TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0x0, t0, t1, 4, 28); 372 TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0xffffffff, t0, t1, 4, 28); 373 TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0x98765432, t0, t1, 4, 28); 374 TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0xff865421, t0, t1, 4, 28); 375 TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0x0, t0, t1, 4, 28); 376 TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0xffffffff, t0, t1, 4, 28); 377 TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0x98765432, t0, t1, 4, 28); 378 TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0xff865421, t0, t1, 4, 28); 379 TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0x0, t0, t1, 4, 28); 380 TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0xffffffff, t0, t1, 4, 28); 381 TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0x98765432, t0, t1, 4, 28); 382 TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0xff865421, t0, t1, 4, 28); 383 384 TESTINST4("ext $t0, $t1, 16, 1", 0x0, 0x0, t0, t1, 1, 16); 385 TESTINST4("ext $t0, $t1, 16, 1", 0x0, 0xffffffff, t0, t1, 1, 16); 386 TESTINST4("ext $t0, $t1, 16, 1", 0x0, 0x98765432, t0, t1, 1, 16); 387 TESTINST4("ext $t0, $t1, 16, 1", 0x0, 0xff865421, t0, t1, 1, 16); 388 TESTINST4("ext $t0, $t1, 16, 1", 0xffffffff, 0x0, t0, t1, 1, 16); 389 TESTINST4("ext $t0, $t1, 16, 1", 0xffffffff, 0xffffffff, t0, t1, 1, 16); 390 TESTINST4("ext $t0, $t1, 16, 1", 0xffffffff, 0x98765432, t0, t1, 1, 16); 391 TESTINST4("ext $t0, $t1, 16, 1", 0xffffffff, 0xff865421, t0, t1, 1, 16); 392 TESTINST4("ext $t0, $t1, 16, 1", 0x98765432, 0x0, t0, t1, 1, 16); 393 TESTINST4("ext $t0, $t1, 16, 1", 0x98765432, 0xffffffff, t0, t1, 1, 16); 394 TESTINST4("ext $t0, $t1, 16, 1", 0x98765432, 0x98765432, t0, t1, 1, 16); 395 TESTINST4("ext $t0, $t1, 16, 1", 0x98765432, 0xff865421, t0, t1, 1, 16); 396 TESTINST4("ext $t0, $t1, 16, 1", 0xff865421, 0x0, t0, t1, 1, 16); 397 TESTINST4("ext $t0, $t1, 16, 1", 0xff865421, 0xffffffff, t0, t1, 1, 16); 398 TESTINST4("ext $t0, $t1, 16, 1", 0xff865421, 0x98765432, t0, t1, 1, 16); 399 TESTINST4("ext $t0, $t1, 16, 1", 0xff865421, 0xff865421, t0, t1, 1, 16); 400 TESTINST4("ext $t0, $t1, 16, 4", 0x0, 0x0, t0, t1, 16, 4); 401 TESTINST4("ext $t0, $t1, 16, 4", 0x0, 0xffffffff, t0, t1, 16, 4); 402 TESTINST4("ext $t0, $t1, 16, 4", 0x0, 0x98765432, t0, t1, 16, 4); 403 TESTINST4("ext $t0, $t1, 16, 4", 0x0, 0xff865421, t0, t1, 16, 4); 404 TESTINST4("ext $t0, $t1, 16, 4", 0xffffffff, 0x0, t0, t1, 16, 4); 405 TESTINST4("ext $t0, $t1, 16, 4", 0xffffffff, 0xffffffff, t0, t1, 16, 4); 406 TESTINST4("ext $t0, $t1, 16, 4", 0xffffffff, 0x98765432, t0, t1, 16, 4); 407 TESTINST4("ext $t0, $t1, 16, 4", 0xffffffff, 0xff865421, t0, t1, 16, 4); 408 TESTINST4("ext $t0, $t1, 16, 4", 0x98765432, 0x0, t0, t1, 16, 4); 409 TESTINST4("ext $t0, $t1, 16, 4", 0x98765432, 0xffffffff, t0, t1, 16, 4); 410 TESTINST4("ext $t0, $t1, 16, 4", 0x98765432, 0x98765432, t0, t1, 16, 4); 411 TESTINST4("ext $t0, $t1, 16, 4", 0x98765432, 0xff865421, t0, t1, 16, 4); 412 TESTINST4("ext $t0, $t1, 16, 4", 0xff865421, 0x0, t0, t1, 16, 4); 413 TESTINST4("ext $t0, $t1, 16, 4", 0xff865421, 0xffffffff, t0, t1, 16, 4); 414 TESTINST4("ext $t0, $t1, 16, 4", 0xff865421, 0x98765432, t0, t1, 16, 4); 415 TESTINST4("ext $t0, $t1, 16, 4", 0xff865421, 0xff865421, t0, t1, 16, 4); 416 TESTINST4("ext $t0, $t1, 16, 16", 0x0, 0x0, t0, t1, 16, 16); 417 TESTINST4("ext $t0, $t1, 16, 16", 0x0, 0xffffffff, t0, t1, 16, 16); 418 TESTINST4("ext $t0, $t1, 16, 16", 0x0, 0x98765432, t0, t1, 16, 16); 419 TESTINST4("ext $t0, $t1, 16, 16", 0x0, 0xff865421, t0, t1, 16, 16); 420 TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0x0, t0, t1, 16, 16); 421 TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0xffffffff, t0, t1, 16, 16); 422 TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0x98765432, t0, t1, 16, 16); 423 TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0xff865421, t0, t1, 16, 16); 424 TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0x0, t0, t1, 16, 16); 425 TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0xffffffff, t0, t1, 16, 16); 426 TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0x98765432, t0, t1, 16, 16); 427 TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0xff865421, t0, t1, 16, 16); 428 TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0x0, t0, t1, 16, 16); 429 TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0xffffffff, t0, t1, 16, 16); 430 TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0x98765432, t0, t1, 16, 16); 431 TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0xff865421, t0, t1, 16, 16); 432 433 TESTINST4("ext $t0, $t1, 31, 1", 0x0, 0x0, t0, t1, 31, 1); 434 TESTINST4("ext $t0, $t1, 31, 1", 0x0, 0xffffffff, t0, t1, 31, 1); 435 TESTINST4("ext $t0, $t1, 31, 1", 0x0, 0x98765432, t0, t1, 31, 1); 436 TESTINST4("ext $t0, $t1, 31, 1", 0x0, 0xff865421, t0, t1, 31, 1); 437 TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0x0, t0, t1, 31, 1); 438 TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0xffffffff, t0, t1, 31, 1); 439 TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0x98765432, t0, t1, 31, 1); 440 TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0xff865421, t0, t1, 31, 1); 441 TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0x0, t0, t1, 31, 1); 442 TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0xffffffff, t0, t1, 31, 1); 443 TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0x98765432, t0, t1, 31, 1); 444 TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0xff865421, t0, t1, 31, 1); 445 TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0x0, t0, t1, 31, 1); 446 TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0xffffffff, t0, t1, 31, 1); 447 TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0x98765432, t0, t1, 31, 1); 448 TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0xff865421, t0, t1, 31, 1); 449 450 printf("INS\n"); 451 TESTINST4("ins $t0, $t1, 0, 1", 0x0, 0x0, t0, t1, 0, 1); 452 TESTINST4("ins $t0, $t1, 0, 1", 0x0, 0xffffffff, t0, t1, 0, 1); 453 TESTINST4("ins $t0, $t1, 0, 1", 0x0, 0x98765432, t0, t1, 0, 1); 454 TESTINST4("ins $t0, $t1, 0, 1", 0x0, 0xff865421, t0, t1, 0, 1); 455 TESTINST4("ins $t0, $t1, 0, 1", 0xffffffff, 0x0, t0, t1, 0, 1); 456 TESTINST4("ins $t0, $t1, 0, 1", 0xffffffff, 0xffffffff, t0, t1, 0, 1); 457 TESTINST4("ins $t0, $t1, 0, 1", 0xffffffff, 0x98765432, t0, t1, 0, 1); 458 TESTINST4("ins $t0, $t1, 0, 1", 0xffffffff, 0xff865421, t0, t1, 0, 1); 459 TESTINST4("ins $t0, $t1, 0, 1", 0x98765432, 0x0, t0, t1, 0, 1); 460 TESTINST4("ins $t0, $t1, 0, 1", 0x98765432, 0xffffffff, t0, t1, 0, 1); 461 TESTINST4("ins $t0, $t1, 0, 1", 0x98765432, 0x98765432, t0, t1, 0, 1); 462 TESTINST4("ins $t0, $t1, 0, 1", 0x98765432, 0xff865421, t0, t1, 0, 1); 463 TESTINST4("ins $t0, $t1, 0, 1", 0xff865421, 0x0, t0, t1, 0, 1); 464 TESTINST4("ins $t0, $t1, 0, 1", 0xff865421, 0xffffffff, t0, t1, 0, 1); 465 TESTINST4("ins $t0, $t1, 0, 1", 0xff865421, 0x98765432, t0, t1, 0, 1); 466 TESTINST4("ins $t0, $t1, 0, 1", 0xff865421, 0xff865421, t0, t1, 0, 1); 467 TESTINST4("ins $t0, $t1, 0, 4", 0x0, 0x0, t0, t1, 0, 4); 468 TESTINST4("ins $t0, $t1, 0, 4", 0x0, 0xffffffff, t0, t1, 0, 4); 469 TESTINST4("ins $t0, $t1, 0, 4", 0x0, 0x98765432, t0, t1, 0, 4); 470 TESTINST4("ins $t0, $t1, 0, 4", 0x0, 0xff865421, t0, t1, 0, 4); 471 TESTINST4("ins $t0, $t1, 0, 4", 0xffffffff, 0x0, t0, t1, 0, 4); 472 TESTINST4("ins $t0, $t1, 0, 4", 0xffffffff, 0xffffffff, t0, t1, 0, 4); 473 TESTINST4("ins $t0, $t1, 0, 4", 0xffffffff, 0x98765432, t0, t1, 0, 4); 474 TESTINST4("ins $t0, $t1, 0, 4", 0xffffffff, 0xff865421, t0, t1, 0, 4); 475 TESTINST4("ins $t0, $t1, 0, 4", 0x98765432, 0x0, t0, t1, 0, 4); 476 TESTINST4("ins $t0, $t1, 0, 4", 0x98765432, 0xffffffff, t0, t1, 0, 4); 477 TESTINST4("ins $t0, $t1, 0, 4", 0x98765432, 0x98765432, t0, t1, 0, 4); 478 TESTINST4("ins $t0, $t1, 0, 4", 0x98765432, 0xff865421, t0, t1, 0, 4); 479 TESTINST4("ins $t0, $t1, 0, 4", 0xff865421, 0x0, t0, t1, 0, 4); 480 TESTINST4("ins $t0, $t1, 0, 4", 0xff865421, 0xffffffff, t0, t1, 0, 4); 481 TESTINST4("ins $t0, $t1, 0, 4", 0xff865421, 0x98765432, t0, t1, 0, 4); 482 TESTINST4("ins $t0, $t1, 0, 4", 0xff865421, 0xff865421, t0, t1, 0, 4); 483 TESTINST4("ins $t0, $t1, 0, 16", 0x0, 0x0, t0, t1, 0, 16); 484 TESTINST4("ins $t0, $t1, 0, 16", 0x0, 0xffffffff, t0, t1, 0, 16); 485 TESTINST4("ins $t0, $t1, 0, 16", 0x0, 0x98765432, t0, t1, 0, 16); 486 TESTINST4("ins $t0, $t1, 0, 16", 0x0, 0xff865421, t0, t1, 0, 16); 487 TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0x0, t0, t1, 0, 16); 488 TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0xffffffff, t0, t1, 0, 16); 489 TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0x98765432, t0, t1, 0, 16); 490 TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0xff865421, t0, t1, 0, 16); 491 TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0x0, t0, t1, 0, 16); 492 TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0xffffffff, t0, t1, 0, 16); 493 TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0x98765432, t0, t1, 0, 16); 494 TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0xff865421, t0, t1, 0, 16); 495 TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0x0, t0, t1, 0, 16); 496 TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0xffffffff, t0, t1, 0, 16); 497 TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0x98765432, t0, t1, 0, 16); 498 TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0xff865421, t0, t1, 0, 16); 499 TESTINST4("ins $t0, $t1, 0, 32", 0x0, 0x0, t0, t1, 0, 32); 500 TESTINST4("ins $t0, $t1, 0, 32", 0x0, 0xffffffff, t0, t1, 0, 32); 501 TESTINST4("ins $t0, $t1, 0, 32", 0x0, 0x98765432, t0, t1, 0, 32); 502 TESTINST4("ins $t0, $t1, 0, 32", 0x0, 0xff865421, t0, t1, 0, 32); 503 TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0x0, t0, t1, 0, 32); 504 TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0xffffffff, t0, t1, 0, 32); 505 TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0x98765432, t0, t1, 0, 32); 506 TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0xff865421, t0, t1, 0, 32); 507 TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0x0, t0, t1, 0, 32); 508 TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0xffffffff, t0, t1, 0, 32); 509 TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0x98765432, t0, t1, 0, 32); 510 TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0xff865421, t0, t1, 0, 32); 511 TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0x0, t0, t1, 0, 32); 512 TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0xffffffff, t0, t1, 0, 32); 513 TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0x98765432, t0, t1, 0, 32); 514 TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0xff865421, t0, t1, 0, 32); 515 516 TESTINST4("ins $t0, $t1, 4, 1", 0x0, 0x0, t0, t1, 4, 1); 517 TESTINST4("ins $t0, $t1, 4, 1", 0x0, 0xffffffff, t0, t1, 4, 1); 518 TESTINST4("ins $t0, $t1, 4, 1", 0x0, 0x98765432, t0, t1, 4, 1); 519 TESTINST4("ins $t0, $t1, 4, 1", 0x0, 0xff865421, t0, t1, 4, 1); 520 TESTINST4("ins $t0, $t1, 4, 1", 0xffffffff, 0x0, t0, t1, 4, 1); 521 TESTINST4("ins $t0, $t1, 4, 1", 0xffffffff, 0xffffffff, t0, t1, 4, 1); 522 TESTINST4("ins $t0, $t1, 4, 1", 0xffffffff, 0x98765432, t0, t1, 4, 1); 523 TESTINST4("ins $t0, $t1, 4, 1", 0xffffffff, 0xff865421, t0, t1, 4, 1); 524 TESTINST4("ins $t0, $t1, 4, 1", 0x98765432, 0x0, t0, t1, 4, 1); 525 TESTINST4("ins $t0, $t1, 4, 1", 0x98765432, 0xffffffff, t0, t1, 4, 1); 526 TESTINST4("ins $t0, $t1, 4, 1", 0x98765432, 0x98765432, t0, t1, 4, 1); 527 TESTINST4("ins $t0, $t1, 4, 1", 0x98765432, 0xff865421, t0, t1, 4, 1); 528 TESTINST4("ins $t0, $t1, 4, 1", 0xff865421, 0x0, t0, t1, 4, 1); 529 TESTINST4("ins $t0, $t1, 4, 1", 0xff865421, 0xffffffff, t0, t1, 4, 1); 530 TESTINST4("ins $t0, $t1, 4, 1", 0xff865421, 0x98765432, t0, t1, 4, 1); 531 TESTINST4("ins $t0, $t1, 4, 1", 0xff865421, 0xff865421, t0, t1, 4, 1); 532 TESTINST4("ins $t0, $t1, 4, 4", 0x0, 0x0, t0, t1, 4, 4); 533 TESTINST4("ins $t0, $t1, 4, 4", 0x0, 0xffffffff, t0, t1, 4, 4); 534 TESTINST4("ins $t0, $t1, 4, 4", 0x0, 0x98765432, t0, t1, 4, 4); 535 TESTINST4("ins $t0, $t1, 4, 4", 0x0, 0xff865421, t0, t1, 4, 4); 536 TESTINST4("ins $t0, $t1, 4, 4", 0xffffffff, 0x0, t0, t1, 4, 4); 537 TESTINST4("ins $t0, $t1, 4, 4", 0xffffffff, 0xffffffff, t0, t1, 4, 4); 538 TESTINST4("ins $t0, $t1, 4, 4", 0xffffffff, 0x98765432, t0, t1, 4, 4); 539 TESTINST4("ins $t0, $t1, 4, 4", 0xffffffff, 0xff865421, t0, t1, 4, 4); 540 TESTINST4("ins $t0, $t1, 4, 4", 0x98765432, 0x0, t0, t1, 4, 4); 541 TESTINST4("ins $t0, $t1, 4, 4", 0x98765432, 0xffffffff, t0, t1, 4, 4); 542 TESTINST4("ins $t0, $t1, 4, 4", 0x98765432, 0x98765432, t0, t1, 4, 4); 543 TESTINST4("ins $t0, $t1, 4, 4", 0x98765432, 0xff865421, t0, t1, 4, 4); 544 TESTINST4("ins $t0, $t1, 4, 4", 0xff865421, 0x0, t0, t1, 4, 4); 545 TESTINST4("ins $t0, $t1, 4, 4", 0xff865421, 0xffffffff, t0, t1, 4, 4); 546 TESTINST4("ins $t0, $t1, 4, 4", 0xff865421, 0x98765432, t0, t1, 4, 4); 547 TESTINST4("ins $t0, $t1, 4, 4", 0xff865421, 0xff865421, t0, t1, 4, 4); 548 TESTINST4("ins $t0, $t1, 4, 16", 0x0, 0x0, t0, t1, 4, 16); 549 TESTINST4("ins $t0, $t1, 4, 16", 0x0, 0xffffffff, t0, t1, 4, 16); 550 TESTINST4("ins $t0, $t1, 4, 16", 0x0, 0x98765432, t0, t1, 4, 16); 551 TESTINST4("ins $t0, $t1, 4, 16", 0x0, 0xff865421, t0, t1, 4, 16); 552 TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0x0, t0, t1, 4, 16); 553 TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0xffffffff, t0, t1, 4, 16); 554 TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0x98765432, t0, t1, 4, 16); 555 TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0xff865421, t0, t1, 4, 16); 556 TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0x0, t0, t1, 4, 16); 557 TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0xffffffff, t0, t1, 4, 16); 558 TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0x98765432, t0, t1, 4, 16); 559 TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0xff865421, t0, t1, 4, 16); 560 TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0x0, t0, t1, 4, 16); 561 TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0xffffffff, t0, t1, 4, 16); 562 TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0x98765432, t0, t1, 4, 16); 563 TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0xff865421, t0, t1, 4, 16); 564 TESTINST4("ins $t0, $t1, 4, 28", 0x0, 0x0, t0, t1, 4, 28); 565 TESTINST4("ins $t0, $t1, 4, 28", 0x0, 0xffffffff, t0, t1, 4, 28); 566 TESTINST4("ins $t0, $t1, 4, 28", 0x0, 0x98765432, t0, t1, 4, 28); 567 TESTINST4("ins $t0, $t1, 4, 28", 0x0, 0xff865421, t0, t1, 4, 28); 568 TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0x0, t0, t1, 4, 28); 569 TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0xffffffff, t0, t1, 4, 28); 570 TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0x98765432, t0, t1, 4, 28); 571 TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0xff865421, t0, t1, 4, 28); 572 TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0x0, t0, t1, 4, 28); 573 TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0xffffffff, t0, t1, 4, 28); 574 TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0x98765432, t0, t1, 4, 28); 575 TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0xff865421, t0, t1, 4, 28); 576 TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0x0, t0, t1, 4, 28); 577 TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0xffffffff, t0, t1, 4, 28); 578 TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0x98765432, t0, t1, 4, 28); 579 TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0xff865421, t0, t1, 4, 28); 580 581 TESTINST4("ins $t0, $t1, 16, 1", 0x0, 0x0, t0, t1, 1, 16); 582 TESTINST4("ins $t0, $t1, 16, 1", 0x0, 0xffffffff, t0, t1, 1, 16); 583 TESTINST4("ins $t0, $t1, 16, 1", 0x0, 0x98765432, t0, t1, 1, 16); 584 TESTINST4("ins $t0, $t1, 16, 1", 0x0, 0xff865421, t0, t1, 1, 16); 585 TESTINST4("ins $t0, $t1, 16, 1", 0xffffffff, 0x0, t0, t1, 1, 16); 586 TESTINST4("ins $t0, $t1, 16, 1", 0xffffffff, 0xffffffff, t0, t1, 1, 16); 587 TESTINST4("ins $t0, $t1, 16, 1", 0xffffffff, 0x98765432, t0, t1, 1, 16); 588 TESTINST4("ins $t0, $t1, 16, 1", 0xffffffff, 0xff865421, t0, t1, 1, 16); 589 TESTINST4("ins $t0, $t1, 16, 1", 0x98765432, 0x0, t0, t1, 1, 16); 590 TESTINST4("ins $t0, $t1, 16, 1", 0x98765432, 0xffffffff, t0, t1, 1, 16); 591 TESTINST4("ins $t0, $t1, 16, 1", 0x98765432, 0x98765432, t0, t1, 1, 16); 592 TESTINST4("ins $t0, $t1, 16, 1", 0x98765432, 0xff865421, t0, t1, 1, 16); 593 TESTINST4("ins $t0, $t1, 16, 1", 0xff865421, 0x0, t0, t1, 1, 16); 594 TESTINST4("ins $t0, $t1, 16, 1", 0xff865421, 0xffffffff, t0, t1, 1, 16); 595 TESTINST4("ins $t0, $t1, 16, 1", 0xff865421, 0x98765432, t0, t1, 1, 16); 596 TESTINST4("ins $t0, $t1, 16, 1", 0xff865421, 0xff865421, t0, t1, 1, 16); 597 TESTINST4("ins $t0, $t1, 16, 4", 0x0, 0x0, t0, t1, 16, 4); 598 TESTINST4("ins $t0, $t1, 16, 4", 0x0, 0xffffffff, t0, t1, 16, 4); 599 TESTINST4("ins $t0, $t1, 16, 4", 0x0, 0x98765432, t0, t1, 16, 4); 600 TESTINST4("ins $t0, $t1, 16, 4", 0x0, 0xff865421, t0, t1, 16, 4); 601 TESTINST4("ins $t0, $t1, 16, 4", 0xffffffff, 0x0, t0, t1, 16, 4); 602 TESTINST4("ins $t0, $t1, 16, 4", 0xffffffff, 0xffffffff, t0, t1, 16, 4); 603 TESTINST4("ins $t0, $t1, 16, 4", 0xffffffff, 0x98765432, t0, t1, 16, 4); 604 TESTINST4("ins $t0, $t1, 16, 4", 0xffffffff, 0xff865421, t0, t1, 16, 4); 605 TESTINST4("ins $t0, $t1, 16, 4", 0x98765432, 0x0, t0, t1, 16, 4); 606 TESTINST4("ins $t0, $t1, 16, 4", 0x98765432, 0xffffffff, t0, t1, 16, 4); 607 TESTINST4("ins $t0, $t1, 16, 4", 0x98765432, 0x98765432, t0, t1, 16, 4); 608 TESTINST4("ins $t0, $t1, 16, 4", 0x98765432, 0xff865421, t0, t1, 16, 4); 609 TESTINST4("ins $t0, $t1, 16, 4", 0xff865421, 0x0, t0, t1, 16, 4); 610 TESTINST4("ins $t0, $t1, 16, 4", 0xff865421, 0xffffffff, t0, t1, 16, 4); 611 TESTINST4("ins $t0, $t1, 16, 4", 0xff865421, 0x98765432, t0, t1, 16, 4); 612 TESTINST4("ins $t0, $t1, 16, 4", 0xff865421, 0xff865421, t0, t1, 16, 4); 613 TESTINST4("ins $t0, $t1, 16, 16", 0x0, 0x0, t0, t1, 16, 16); 614 TESTINST4("ins $t0, $t1, 16, 16", 0x0, 0xffffffff, t0, t1, 16, 16); 615 TESTINST4("ins $t0, $t1, 16, 16", 0x0, 0x98765432, t0, t1, 16, 16); 616 TESTINST4("ins $t0, $t1, 16, 16", 0x0, 0xff865421, t0, t1, 16, 16); 617 TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0x0, t0, t1, 16, 16); 618 TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0xffffffff, t0, t1, 16, 16); 619 TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0x98765432, t0, t1, 16, 16); 620 TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0xff865421, t0, t1, 16, 16); 621 TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0x0, t0, t1, 16, 16); 622 TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0xffffffff, t0, t1, 16, 16); 623 TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0x98765432, t0, t1, 16, 16); 624 TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0xff865421, t0, t1, 16, 16); 625 TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0x0, t0, t1, 16, 16); 626 TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0xffffffff, t0, t1, 16, 16); 627 TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0x98765432, t0, t1, 16, 16); 628 TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0xff865421, t0, t1, 16, 16); 629 630 TESTINST4("ins $t0, $t1, 31, 1", 0x0, 0x0, t0, t1, 31, 1); 631 TESTINST4("ins $t0, $t1, 31, 1", 0x0, 0xffffffff, t0, t1, 31, 1); 632 TESTINST4("ins $t0, $t1, 31, 1", 0x0, 0x98765432, t0, t1, 31, 1); 633 TESTINST4("ins $t0, $t1, 31, 1", 0x0, 0xff865421, t0, t1, 31, 1); 634 TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0x0, t0, t1, 31, 1); 635 TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0xffffffff, t0, t1, 31, 1); 636 TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0x98765432, t0, t1, 31, 1); 637 TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0xff865421, t0, t1, 31, 1); 638 TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0x0, t0, t1, 31, 1); 639 TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0xffffffff, t0, t1, 31, 1); 640 TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0x98765432, t0, t1, 31, 1); 641 TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0xff865421, t0, t1, 31, 1); 642 TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0x0, t0, t1, 31, 1); 643 TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0xffffffff, t0, t1, 31, 1); 644 TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0x98765432, t0, t1, 31, 1); 645 TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0xff865421, t0, t1, 31, 1); 646#endif 647 648 printf("LB\n"); 649 TESTINSN5LOAD("lb $t0, 0($t1)", 0, 0, t0); 650 TESTINSN5LOAD("lb $t0, 4($t1)", 0, 4, t0); 651 TESTINSN5LOAD("lb $t0, 8($t1)", 0, 8, t0); 652 TESTINSN5LOAD("lb $t0, 12($t1)", 0, 12, t0); 653 TESTINSN5LOAD("lb $t0, 16($t1)", 0, 16, t0); 654 TESTINSN5LOAD("lb $t0, 20($t1)", 0, 20, t0); 655 TESTINSN5LOAD("lb $t0, 24($t1)", 0, 24, t0); 656 TESTINSN5LOAD("lb $t0, 28($t1)", 0, 28, t0); 657 TESTINSN5LOAD("lb $t0, 32($t1)", 0, 32, t0); 658 TESTINSN5LOAD("lb $t0, 36($t1)", 0, 36, t0); 659 TESTINSN5LOAD("lb $t0, 40($t1)", 0, 40, t0); 660 TESTINSN5LOAD("lb $t0, 44($t1)", 0, 44, t0); 661 TESTINSN5LOAD("lb $t0, 48($t1)", 0, 48, t0); 662 TESTINSN5LOAD("lb $t0, 52($t1)", 0, 52, t0); 663 TESTINSN5LOAD("lb $t0, 56($t1)", 0, 56, t0); 664 TESTINSN5LOAD("lb $t0, 60($t1)", 0, 60, t0); 665 TESTINSN5LOAD("lb $t0, 64($t1)", 0, 64, t0); 666 TESTINSN5LOAD("lb $t0, 2($t1)", 0, 2, t0); 667 TESTINSN5LOAD("lb $t0, 6($t1)", 0, 6, t0); 668 TESTINSN5LOAD("lb $t0, 10($t1)", 0, 10, t0); 669 TESTINSN5LOAD("lb $t0, 14($t1)", 0, 14, t0); 670 TESTINSN5LOAD("lb $t0, 18($t1)", 0, 18, t0); 671 TESTINSN5LOAD("lb $t0, 22($t1)", 0, 22, t0); 672 TESTINSN5LOAD("lb $t0, 26($t1)", 0, 26, t0); 673 TESTINSN5LOAD("lb $t0, 30($t1)", 0, 30, t0); 674 TESTINSN5LOAD("lb $t0, 34($t1)", 0, 34, t0); 675 TESTINSN5LOAD("lb $t0, 38($t1)", 0, 38, t0); 676 677 printf("LBU\n"); 678 TESTINSN5LOAD("lbu $t0, 0($t1)", 0, 0, t0); 679 TESTINSN5LOAD("lbu $t0, 4($t1)", 0, 4, t0); 680 TESTINSN5LOAD("lbu $t0, 8($t1)", 0, 8, t0); 681 TESTINSN5LOAD("lbu $t0, 12($t1)", 0, 12, t0); 682 TESTINSN5LOAD("lbu $t0, 16($t1)", 0, 16, t0); 683 TESTINSN5LOAD("lbu $t0, 20($t1)", 0, 20, t0); 684 TESTINSN5LOAD("lbu $t0, 24($t1)", 0, 24, t0); 685 TESTINSN5LOAD("lbu $t0, 28($t1)", 0, 28, t0); 686 TESTINSN5LOAD("lbu $t0, 32($t1)", 0, 32, t0); 687 TESTINSN5LOAD("lbu $t0, 36($t1)", 0, 36, t0); 688 TESTINSN5LOAD("lbu $t0, 40($t1)", 0, 40, t0); 689 TESTINSN5LOAD("lbu $t0, 44($t1)", 0, 44, t0); 690 TESTINSN5LOAD("lbu $t0, 48($t1)", 0, 48, t0); 691 TESTINSN5LOAD("lbu $t0, 52($t1)", 0, 52, t0); 692 TESTINSN5LOAD("lbu $t0, 56($t1)", 0, 56, t0); 693 TESTINSN5LOAD("lbu $t0, 60($t1)", 0, 60, t0); 694 TESTINSN5LOAD("lbu $t0, 64($t1)", 0, 64, t0); 695 TESTINSN5LOAD("lbu $t0, 2($t1)", 0, 2, t0); 696 TESTINSN5LOAD("lbu $t0, 6($t1)", 0, 6, t0); 697 TESTINSN5LOAD("lbu $t0, 10($t1)", 0, 10, t0); 698 TESTINSN5LOAD("lbu $t0, 14($t1)", 0, 14, t0); 699 TESTINSN5LOAD("lbu $t0, 18($t1)", 0, 18, t0); 700 TESTINSN5LOAD("lbu $t0, 22($t1)", 0, 22, t0); 701 TESTINSN5LOAD("lbu $t0, 26($t1)", 0, 26, t0); 702 TESTINSN5LOAD("lbu $t0, 30($t1)", 0, 30, t0); 703 TESTINSN5LOAD("lbu $t0, 34($t1)", 0, 34, t0); 704 TESTINSN5LOAD("lbu $t0, 38($t1)", 0, 38, t0); 705 706 printf("LH\n"); 707 TESTINSN5LOAD("lh $t0, 0($t1)", 0, 0, t0); 708 TESTINSN5LOAD("lh $t0, 4($t1)", 0, 4, t0); 709 TESTINSN5LOAD("lh $t0, 8($t1)", 0, 8, t0); 710 TESTINSN5LOAD("lh $t0, 12($t1)", 0, 12, t0); 711 TESTINSN5LOAD("lh $t0, 16($t1)", 0, 16, t0); 712 TESTINSN5LOAD("lh $t0, 20($t1)", 0, 20, t0); 713 TESTINSN5LOAD("lh $t0, 24($t1)", 0, 24, t0); 714 TESTINSN5LOAD("lh $t0, 28($t1)", 0, 28, t0); 715 TESTINSN5LOAD("lh $t0, 32($t1)", 0, 32, t0); 716 TESTINSN5LOAD("lh $t0, 36($t1)", 0, 36, t0); 717 TESTINSN5LOAD("lh $t0, 40($t1)", 0, 40, t0); 718 TESTINSN5LOAD("lh $t0, 44($t1)", 0, 44, t0); 719 TESTINSN5LOAD("lh $t0, 48($t1)", 0, 48, t0); 720 TESTINSN5LOAD("lh $t0, 52($t1)", 0, 52, t0); 721 TESTINSN5LOAD("lh $t0, 56($t1)", 0, 56, t0); 722 TESTINSN5LOAD("lh $t0, 60($t1)", 0, 60, t0); 723 TESTINSN5LOAD("lh $t0, 64($t1)", 0, 64, t0); 724 TESTINSN5LOAD("lh $t0, 2($t1)", 0, 2, t0); 725 TESTINSN5LOAD("lh $t0, 6($t1)", 0, 6, t0); 726 TESTINSN5LOAD("lh $t0, 10($t1)", 0, 10, t0); 727 TESTINSN5LOAD("lh $t0, 14($t1)", 0, 14, t0); 728 TESTINSN5LOAD("lh $t0, 18($t1)", 0, 18, t0); 729 TESTINSN5LOAD("lh $t0, 22($t1)", 0, 22, t0); 730 TESTINSN5LOAD("lh $t0, 26($t1)", 0, 26, t0); 731 TESTINSN5LOAD("lh $t0, 30($t1)", 0, 30, t0); 732 TESTINSN5LOAD("lh $t0, 34($t1)", 0, 34, t0); 733 TESTINSN5LOAD("lh $t0, 38($t1)", 0, 38, t0); 734 735 printf("LHU\n"); 736 TESTINSN5LOAD("lhu $t0, 0($t1)", 0, 0, t0); 737 TESTINSN5LOAD("lhu $t0, 4($t1)", 0, 4, t0); 738 TESTINSN5LOAD("lhu $t0, 8($t1)", 0, 8, t0); 739 TESTINSN5LOAD("lhu $t0, 12($t1)", 0, 12, t0); 740 TESTINSN5LOAD("lhu $t0, 16($t1)", 0, 16, t0); 741 TESTINSN5LOAD("lhu $t0, 20($t1)", 0, 20, t0); 742 TESTINSN5LOAD("lhu $t0, 24($t1)", 0, 24, t0); 743 TESTINSN5LOAD("lhu $t0, 28($t1)", 0, 28, t0); 744 TESTINSN5LOAD("lhu $t0, 32($t1)", 0, 32, t0); 745 TESTINSN5LOAD("lhu $t0, 36($t1)", 0, 36, t0); 746 TESTINSN5LOAD("lhu $t0, 40($t1)", 0, 40, t0); 747 TESTINSN5LOAD("lhu $t0, 44($t1)", 0, 44, t0); 748 TESTINSN5LOAD("lhu $t0, 48($t1)", 0, 48, t0); 749 TESTINSN5LOAD("lhu $t0, 52($t1)", 0, 52, t0); 750 TESTINSN5LOAD("lhu $t0, 56($t1)", 0, 56, t0); 751 TESTINSN5LOAD("lhu $t0, 60($t1)", 0, 60, t0); 752 TESTINSN5LOAD("lhu $t0, 64($t1)", 0, 64, t0); 753 TESTINSN5LOAD("lhu $t0, 2($t1)", 0, 2, t0); 754 TESTINSN5LOAD("lhu $t0, 6($t1)", 0, 6, t0); 755 TESTINSN5LOAD("lhu $t0, 10($t1)", 0, 10, t0); 756 TESTINSN5LOAD("lhu $t0, 14($t1)", 0, 14, t0); 757 TESTINSN5LOAD("lhu $t0, 18($t1)", 0, 18, t0); 758 TESTINSN5LOAD("lhu $t0, 22($t1)", 0, 22, t0); 759 TESTINSN5LOAD("lhu $t0, 26($t1)", 0, 26, t0); 760 TESTINSN5LOAD("lhu $t0, 30($t1)", 0, 30, t0); 761 TESTINSN5LOAD("lhu $t0, 34($t1)", 0, 34, t0); 762 TESTINSN5LOAD("lhu $t0, 38($t1)", 0, 38, t0); 763 764 printf("LUI\n"); 765 TESTINST3("lui $t0, 0xffff", 0xffff, t0, t1); 766 TESTINST3("lui $t0, 0xff00", 0xff00, t0, t1); 767 TESTINST3("lui $t0, 0xff", 0xff, t0, t1); 768 TESTINST3("lui $t0, 0x0", 0x0, t0, t1); 769 TESTINST3("lui $t0, 0x5", 0x5, t0, t1); 770 TESTINST3("lui $t0, 0x387", 0x387, t0, t1); 771 772 printf("LW\n"); 773 TESTINSN5LOAD("lw $t0, 0($t1)", 0, 0, t0); 774 TESTINSN5LOAD("lw $t0, 4($t1)", 0, 4, t0); 775 TESTINSN5LOAD("lw $t0, 8($t1)", 0, 8, t0); 776 TESTINSN5LOAD("lw $t0, 12($t1)", 0, 12, t0); 777 TESTINSN5LOAD("lw $t0, 16($t1)", 0, 16, t0); 778 TESTINSN5LOAD("lw $t0, 20($t1)", 0, 20, t0); 779 TESTINSN5LOAD("lw $t0, 24($t1)", 0, 24, t0); 780 TESTINSN5LOAD("lw $t0, 28($t1)", 0, 28, t0); 781 TESTINSN5LOAD("lw $t0, 32($t1)", 0, 32, t0); 782 TESTINSN5LOAD("lw $t0, 36($t1)", 0, 36, t0); 783 TESTINSN5LOAD("lw $t0, 40($t1)", 0, 40, t0); 784 TESTINSN5LOAD("lw $t0, 44($t1)", 0, 44, t0); 785 TESTINSN5LOAD("lw $t0, 48($t1)", 0, 48, t0); 786 TESTINSN5LOAD("lw $t0, 52($t1)", 0, 52, t0); 787 TESTINSN5LOAD("lw $t0, 56($t1)", 0, 56, t0); 788 TESTINSN5LOAD("lw $t0, 60($t1)", 0, 60, t0); 789 TESTINSN5LOAD("lw $t0, 64($t1)", 0, 64, t0); 790 TESTINSN5LOAD("lw $t0, 2($t1)", 0, 2, t0); 791 TESTINSN5LOAD("lw $t0, 6($t1)", 0, 6, t0); 792 TESTINSN5LOAD("lw $t0, 10($t1)", 0, 10, t0); 793 TESTINSN5LOAD("lw $t0, 14($t1)", 0, 14, t0); 794 TESTINSN5LOAD("lw $t0, 18($t1)", 0, 18, t0); 795 TESTINSN5LOAD("lw $t0, 22($t1)", 0, 22, t0); 796 TESTINSN5LOAD("lw $t0, 26($t1)", 0, 26, t0); 797 TESTINSN5LOAD("lw $t0, 30($t1)", 0, 30, t0); 798 TESTINSN5LOAD("lw $t0, 34($t1)", 0, 34, t0); 799 TESTINSN5LOAD("lw $t0, 38($t1)", 0, 38, t0); 800 801 printf("LWL\n"); 802 TESTINSN5LOAD("lwl $t0, 0($t1)", 0, 0, t0); 803 TESTINSN5LOAD("lwl $t0, 4($t1)", 0, 4, t0); 804 TESTINSN5LOAD("lwl $t0, 8($t1)", 0, 8, t0); 805 TESTINSN5LOAD("lwl $t0, 12($t1)", 0, 12, t0); 806 TESTINSN5LOAD("lwl $t0, 16($t1)", 0, 16, t0); 807 TESTINSN5LOAD("lwl $t0, 20($t1)", 0, 20, t0); 808 TESTINSN5LOAD("lwl $t0, 24($t1)", 0, 24, t0); 809 TESTINSN5LOAD("lwl $t0, 28($t1)", 0, 28, t0); 810 TESTINSN5LOAD("lwl $t0, 32($t1)", 0, 32, t0); 811 TESTINSN5LOAD("lwl $t0, 36($t1)", 0, 36, t0); 812 TESTINSN5LOAD("lwl $t0, 40($t1)", 0, 40, t0); 813 TESTINSN5LOAD("lwl $t0, 44($t1)", 0, 44, t0); 814 TESTINSN5LOAD("lwl $t0, 48($t1)", 0, 48, t0); 815 TESTINSN5LOAD("lwl $t0, 52($t1)", 0, 52, t0); 816 TESTINSN5LOAD("lwl $t0, 56($t1)", 0, 56, t0); 817 TESTINSN5LOAD("lwl $t0, 60($t1)", 0, 60, t0); 818 TESTINSN5LOAD("lwl $t0, 64($t1)", 0, 64, t0); 819 TESTINSN5LOAD("lwl $t0, 2($t1)", 0, 2, t0); 820 TESTINSN5LOAD("lwl $t0, 6($t1)", 0, 6, t0); 821 TESTINSN5LOAD("lwl $t0, 10($t1)", 0, 10, t0); 822 TESTINSN5LOAD("lwl $t0, 14($t1)", 0, 14, t0); 823 TESTINSN5LOAD("lwl $t0, 18($t1)", 0, 18, t0); 824 TESTINSN5LOAD("lwl $t0, 22($t1)", 0, 22, t0); 825 TESTINSN5LOAD("lwl $t0, 26($t1)", 0, 26, t0); 826 TESTINSN5LOAD("lwl $t0, 30($t1)", 0, 30, t0); 827 TESTINSN5LOAD("lwl $t0, 34($t1)", 0, 34, t0); 828 TESTINSN5LOAD("lwl $t0, 38($t1)", 0, 38, t0); 829 830 printf("LWR\n"); 831 TESTINSN5LOAD("lwr $t0, 0($t1)", 0, 0, t0); 832 TESTINSN5LOAD("lwr $t0, 4($t1)", 0, 4, t0); 833 TESTINSN5LOAD("lwr $t0, 8($t1)", 0, 8, t0); 834 TESTINSN5LOAD("lwr $t0, 12($t1)", 0, 12, t0); 835 TESTINSN5LOAD("lwr $t0, 16($t1)", 0, 16, t0); 836 TESTINSN5LOAD("lwr $t0, 20($t1)", 0, 20, t0); 837 TESTINSN5LOAD("lwr $t0, 24($t1)", 0, 24, t0); 838 TESTINSN5LOAD("lwr $t0, 28($t1)", 0, 28, t0); 839 TESTINSN5LOAD("lwr $t0, 32($t1)", 0, 32, t0); 840 TESTINSN5LOAD("lwr $t0, 36($t1)", 0, 36, t0); 841 TESTINSN5LOAD("lwr $t0, 40($t1)", 0, 40, t0); 842 TESTINSN5LOAD("lwr $t0, 44($t1)", 0, 44, t0); 843 TESTINSN5LOAD("lwr $t0, 48($t1)", 0, 48, t0); 844 TESTINSN5LOAD("lwr $t0, 52($t1)", 0, 52, t0); 845 TESTINSN5LOAD("lwr $t0, 56($t1)", 0, 56, t0); 846 TESTINSN5LOAD("lwr $t0, 60($t1)", 0, 60, t0); 847 TESTINSN5LOAD("lwr $t0, 64($t1)", 0, 64, t0); 848 TESTINSN5LOAD("lwr $t0, 2($t1)", 0, 2, t0); 849 TESTINSN5LOAD("lwr $t0, 6($t1)", 0, 6, t0); 850 TESTINSN5LOAD("lwr $t0, 10($t1)", 0, 10, t0); 851 TESTINSN5LOAD("lwr $t0, 14($t1)", 0, 14, t0); 852 TESTINSN5LOAD("lwr $t0, 18($t1)", 0, 18, t0); 853 TESTINSN5LOAD("lwr $t0, 22($t1)", 0, 22, t0); 854 TESTINSN5LOAD("lwr $t0, 26($t1)", 0, 26, t0); 855 TESTINSN5LOAD("lwr $t0, 30($t1)", 0, 30, t0); 856 TESTINSN5LOAD("lwr $t0, 34($t1)", 0, 34, t0); 857 TESTINSN5LOAD("lwr $t0, 38($t1)", 0, 38, t0); 858 859 printf("MADD\n"); 860 TESTINST3a("madd $t0, $t1", 0x6, 0x2, t0, t1); 861 TESTINST3a("madd $t0, $t1", 0x55, 0x28, t0, t1); 862 TESTINST3a("madd $t0, $t1", 0x18, 0xfff, t0, t1); 863 TESTINST3a("madd $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 864 TESTINST3a("madd $t0, $t1", 0xffffffff, 0x1, t0, t1); 865 TESTINST3a("madd $t0, $t1", 0x1, 0xffffffff, t0, t1); 866 TESTINST3a("madd $t0, $t1", 0x2, 0x6, t0, t1); 867 TESTINST3a("madd $t0, $t1", 0x356, 0x555, t0, t1); 868 869 printf("MADDU\n"); 870 TESTINST3a("maddu $t0, $t1", 0x6, 0x2, t0, t1); 871 TESTINST3a("maddu $t0, $t1", 0x55, 0x28, t0, t1); 872 TESTINST3a("maddu $t0, $t1", 0x18, 0xfff, t0, t1); 873 TESTINST3a("maddu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 874 TESTINST3a("maddu $t0, $t1", 0xffffffff, 0x1, t0, t1); 875 TESTINST3a("maddu $t0, $t1", 0x1, 0xffffffff, t0, t1); 876 TESTINST3a("maddu $t0, $t1", 0x2, 0x6, t0, t1); 877 TESTINST3a("maddu $t0, $t1", 0x356, 0x555, t0, t1); 878 879 printf("MOVN\n"); 880 TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2); 881 TESTINST1("movn $t0, $t1, $t2", 0x31415927, 1, t0, t1, t2); 882 TESTINST1("movn $t0, $t1, $t2", 0, 255, t0, t1, t2); 883 TESTINST1("movn $t0, $t1, $t2", -1, 0, t0, t1, t2); 884 TESTINST1("movn $t0, $t1, $t2", 0, 1, t0, t1, t2); 885 TESTINST1("movn $t0, $t1, $t2", 0, 0, t0, t1, t2); 886 TESTINST1("movn $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 887 TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 888 TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 1, t0, t1, t2); 889 TESTINST1("movn $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 890 TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 891 TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 892 TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 893 TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2); 894 TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 895 TESTINST1("movn $t0, $t1, $t2", 0, 1, t0, t1, t2); 896 TESTINST1("movn $t0, $t1, $t2", 1, 0, t0, t1, t2); 897 TESTINST1("movn $t0, $t1, $t2", 0, 1, t0, t1, t2); 898 TESTINST1("movn $t0, $t1, $t2", -1, 0, t0, t1, t2); 899 TESTINST1("movn $t0, $t1, $t2", 0, -1, t0, t1, t2); 900 TESTINST1("movn $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 901 TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 902 TESTINST1("movn $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 903 TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 904 TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 905 TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 906 907 printf("MOVZ\n"); 908 TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2); 909 TESTINST1("movz $t0, $t1, $t2", 0x31415927, 1, t0, t1, t2); 910 TESTINST1("movz $t0, $t1, $t2", 0, 255, t0, t1, t2); 911 TESTINST1("movz $t0, $t1, $t2", -1, 0, t0, t1, t2); 912 TESTINST1("movz $t0, $t1, $t2", 0, 1, t0, t1, t2); 913 TESTINST1("movz $t0, $t1, $t2", 0, 0, t0, t1, t2); 914 TESTINST1("movz $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 915 TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 916 TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 1, t0, t1, t2); 917 TESTINST1("movz $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 918 TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 919 TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 920 TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 921 TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2); 922 TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 923 TESTINST1("movz $t0, $t1, $t2", 0, 1, t0, t1, t2); 924 TESTINST1("movz $t0, $t1, $t2", 1, 0, t0, t1, t2); 925 TESTINST1("movz $t0, $t1, $t2", 0, 1, t0, t1, t2); 926 TESTINST1("movz $t0, $t1, $t2", -1, 0, t0, t1, t2); 927 TESTINST1("movz $t0, $t1, $t2", 0, -1, t0, t1, t2); 928 TESTINST1("movz $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 929 TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 930 TESTINST1("movz $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 931 TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 932 TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2); 933 TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 934 935 printf("MSUB\n"); 936 TESTINST3a("msub $t0, $t1", 0x6, 0x2, t0, t1); 937 TESTINST3a("msub $t0, $t1", 0x55, 0x28, t0, t1); 938 TESTINST3a("msub $t0, $t1", 0x18, 0xfff, t0, t1); 939 TESTINST3a("msub $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 940 TESTINST3a("msub $t0, $t1", 0xffffffff, 0x1, t0, t1); 941 TESTINST3a("msub $t0, $t1", 0x1, 0xffffffff, t0, t1); 942 TESTINST3a("msub $t0, $t1", 0x2, 0x6, t0, t1); 943 TESTINST3a("msub $t0, $t1", 0x356, 0x555, t0, t1); 944 945 printf("MSUBU\n"); 946 TESTINST3a("msubu $t0, $t1", 0x31415927, 0xffffffff, t0, t1); 947 TESTINST3a("msubu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1); 948 TESTINST3a("msubu $t0, $t1", 0, 255, t0, t1); 949 TESTINST3a("msubu $t0, $t1", -1, 0, t0, t1); 950 TESTINST3a("msubu $t0, $t1", 0, 1, t0, t1); 951 TESTINST3a("msubu $t0, $t1", 0, 0, t0, t1); 952 TESTINST3a("msubu $t0, $t1", 0x80000000, -1, t0, t1); 953 TESTINST3a("msubu $t0, $t1", 0x80000000, 0x80000000, t0, t1); 954 TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0, t0, t1); 955 TESTINST3a("msubu $t0, $t1", 0x80000000, 0x80000000, t0, t1); 956 TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1); 957 TESTINST3a("msubu $t0, $t1", 0x80000000, 0xff000000, t0, t1); 958 TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1); 959 TESTINST3a("msubu $t0, $t1", 0x31415927, 0xffffffff, t0, t1); 960 TESTINST3a("msubu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1); 961 TESTINST3a("msubu $t0, $t1", 0, 255, t0, t1); 962 TESTINST3a("msubu $t0, $t1", 1, 0, t0, t1); 963 TESTINST3a("msubu $t0, $t1", 0, 1, t0, t1); 964 TESTINST3a("msubu $t0, $t1", -1, 0, t0, t1); 965 TESTINST3a("msubu $t0, $t1", 0, -1, t0, t1); 966 TESTINST3a("msubu $t0, $t1", 0, 0x80000000, t0, t1); 967 TESTINST3a("msubu $t0, $t1", 0x80000000, 0, t0, t1); 968 TESTINST3a("msubu $t0, $t1", 0x80000000, 0x80000000, t0, t1); 969 TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1); 970 TESTINST3a("msubu $t0, $t1", 0x80000000, 0xff000000, t0, t1); 971 TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1); 972 TESTINST3a("msubu $t0, $t1", 0xffffffff, 0, t0, t1); 973 TESTINST3a("msubu $t0, $t1", 0, 0xffffffff, t0, t1); 974 TESTINST3a("msubu $t0, $t1", 0xffffffff, 0xffffffff, t0, t1); 975 TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 976 TESTINST3a("msubu $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1); 977 978 printf("MUL\n"); 979 TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 980 TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 981 TESTINST1("mul $t0, $t1, $t2", 0, 255, t0, t1, t2); 982 TESTINST1("mul $t0, $t1, $t2", -1, 0, t0, t1, t2); 983 TESTINST1("mul $t0, $t1, $t2", 0, 1, t0, t1, t2); 984 TESTINST1("mul $t0, $t1, $t2", 0, 0, t0, t1, t2); 985 TESTINST1("mul $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 986 TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 987 TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 988 TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 989 TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 990 TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 991 TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 992 TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 993 TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 994 TESTINST1("mul $t0, $t1, $t2", 0, 255, t0, t1, t2); 995 TESTINST1("mul $t0, $t1, $t2", 1, 0, t0, t1, t2); 996 TESTINST1("mul $t0, $t1, $t2", 0, 1, t0, t1, t2); 997 TESTINST1("mul $t0, $t1, $t2", -1, 0, t0, t1, t2); 998 TESTINST1("mul $t0, $t1, $t2", 0, -1, t0, t1, t2); 999 TESTINST1("mul $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1000 TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1001 TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1002 TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1003 TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1004 TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1005 TESTINST1("mul $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1006 TESTINST1("mul $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1007 TESTINST1("mul $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1008 TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1009 TESTINST1("mul $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1010 1011 printf("MULT\n"); 1012 TESTINST3a("mult $t0, $t1", 0x31415927, 0xffffffff, t0, t1); 1013 TESTINST3a("mult $t0, $t1", 0x31415927, 0xee00ee00, t0, t1); 1014 TESTINST3a("mult $t0, $t1", 0, 255, t0, t1); 1015 TESTINST3a("mult $t0, $t1", -1, 0, t0, t1); 1016 TESTINST3a("mult $t0, $t1", 0, 1, t0, t1); 1017 TESTINST3a("mult $t0, $t1", 0, 0, t0, t1); 1018 TESTINST3a("mult $t0, $t1", 0x80000000, -1, t0, t1); 1019 TESTINST3a("mult $t0, $t1", 0x80000000, 0x80000000, t0, t1); 1020 TESTINST3a("mult $t0, $t1", 0x7fffffff, 0, t0, t1); 1021 TESTINST3a("mult $t0, $t1", 0x80000000, 0x80000000, t0, t1); 1022 TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x80000000, t0, t1); 1023 TESTINST3a("mult $t0, $t1", 0x80000000, 0xff000000, t0, t1); 1024 TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1); 1025 TESTINST3a("mult $t0, $t1", 0x31415927, 0xffffffff, t0, t1); 1026 TESTINST3a("mult $t0, $t1", 0x31415927, 0xee00ee00, t0, t1); 1027 TESTINST3a("mult $t0, $t1", 0, 255, t0, t1); 1028 TESTINST3a("mult $t0, $t1", 1, 0, t0, t1); 1029 TESTINST3a("mult $t0, $t1", 0, 1, t0, t1); 1030 TESTINST3a("mult $t0, $t1", -1, 0, t0, t1); 1031 TESTINST3a("mult $t0, $t1", 0, -1, t0, t1); 1032 TESTINST3a("mult $t0, $t1", 0, 0x80000000, t0, t1); 1033 TESTINST3a("mult $t0, $t1", 0x80000000, 0, t0, t1); 1034 TESTINST3a("mult $t0, $t1", 0x80000000, 0x80000000, t0, t1); 1035 TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x80000000, t0, t1); 1036 TESTINST3a("mult $t0, $t1", 0x80000000, 0xff000000, t0, t1); 1037 TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1); 1038 TESTINST3a("mult $t0, $t1", 0xffffffff, 0, t0, t1); 1039 TESTINST3a("mult $t0, $t1", 0, 0xffffffff, t0, t1); 1040 TESTINST3a("mult $t0, $t1", 0xffffffff, 0xffffffff, t0, t1); 1041 TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 1042 TESTINST3a("mult $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1); 1043 1044 printf("MULTU\n"); 1045 TESTINST3a("multu $t0, $t1", 0x31415927, 0xffffffff, t0, t1); 1046 TESTINST3a("multu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1); 1047 TESTINST3a("multu $t0, $t1", 0, 255, t0, t1); 1048 TESTINST3a("multu $t0, $t1", -1, 0, t0, t1); 1049 TESTINST3a("multu $t0, $t1", 0, 1, t0, t1); 1050 TESTINST3a("multu $t0, $t1", 0, 0, t0, t1); 1051 TESTINST3a("multu $t0, $t1", 0x80000000, -1, t0, t1); 1052 TESTINST3a("multu $t0, $t1", 0x80000000, 0x80000000, t0, t1); 1053 TESTINST3a("multu $t0, $t1", 0x7fffffff, 0, t0, t1); 1054 TESTINST3a("multu $t0, $t1", 0x80000000, 0x80000000, t0, t1); 1055 TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1); 1056 TESTINST3a("multu $t0, $t1", 0x80000000, 0xff000000, t0, t1); 1057 TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1); 1058 TESTINST3a("multu $t0, $t1", 0x31415927, 0xffffffff, t0, t1); 1059 TESTINST3a("multu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1); 1060 TESTINST3a("multu $t0, $t1", 0, 255, t0, t1); 1061 TESTINST3a("multu $t0, $t1", 1, 0, t0, t1); 1062 TESTINST3a("multu $t0, $t1", 0, 1, t0, t1); 1063 TESTINST3a("multu $t0, $t1", -1, 0, t0, t1); 1064 TESTINST3a("multu $t0, $t1", 0, -1, t0, t1); 1065 TESTINST3a("multu $t0, $t1", 0, 0x80000000, t0, t1); 1066 TESTINST3a("multu $t0, $t1", 0x80000000, 0, t0, t1); 1067 TESTINST3a("multu $t0, $t1", 0x80000000, 0x80000000, t0, t1); 1068 TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1); 1069 TESTINST3a("multu $t0, $t1", 0x80000000, 0xff000000, t0, t1); 1070 TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1); 1071 TESTINST3a("multu $t0, $t1", 0xffffffff, 0, t0, t1); 1072 TESTINST3a("multu $t0, $t1", 0, 0xffffffff, t0, t1); 1073 TESTINST3a("multu $t0, $t1", 0xffffffff, 0xffffffff, t0, t1); 1074 TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); 1075 TESTINST3a("multu $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1); 1076 1077 printf("NOR\n"); 1078 TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1079 TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1080 TESTINST1("nor $t0, $t1, $t2", 0, 255, t0, t1, t2); 1081 TESTINST1("nor $t0, $t1, $t2", -1, 0, t0, t1, t2); 1082 TESTINST1("nor $t0, $t1, $t2", 0, 1, t0, t1, t2); 1083 TESTINST1("nor $t0, $t1, $t2", 0, 0, t0, t1, t2); 1084 TESTINST1("nor $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1085 TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1086 TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1087 TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1088 TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1089 TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1090 TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1091 TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1092 TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1093 TESTINST1("nor $t0, $t1, $t2", 0, 255, t0, t1, t2); 1094 TESTINST1("nor $t0, $t1, $t2", 1, 0, t0, t1, t2); 1095 TESTINST1("nor $t0, $t1, $t2", 0, 1, t0, t1, t2); 1096 TESTINST1("nor $t0, $t1, $t2", -1, 0, t0, t1, t2); 1097 TESTINST1("nor $t0, $t1, $t2", 0, -1, t0, t1, t2); 1098 TESTINST1("nor $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1099 TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1100 TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1101 TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1102 TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1103 TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1104 TESTINST1("nor $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1105 TESTINST1("nor $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1106 TESTINST1("nor $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1107 TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1108 TESTINST1("nor $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1109 1110#if (__mips==32) && (__mips_isa_rev>=2) 1111 printf("WSBH\n"); 1112 TESTINST3("wsbh $t0, $t1", 0x2, t0, t1); 1113 TESTINST3("wsbh $t0, $t1", 0x28, t0, t1); 1114 TESTINST3("wsbh $t0, $t1", -258, t0, t1); 1115 TESTINST3("wsbh $t0, $t1", 0x7fffffff, t0, t1); 1116 TESTINST3("wsbh $t0, $t1", -11, t0, t1); 1117 TESTINST3("wsbh $t0, $t1", 0xffffffff, t0, t1); 1118 TESTINST3("wsbh $t0, $t1", 0x16, t0, t1); 1119 TESTINST3("wsbh $t0, $t1", -1, t0, t1); 1120#endif 1121 1122 printf("NOT\n"); 1123 TESTINST3("not $t0, $t1", 0x2, t0, t1); 1124 TESTINST3("not $t0, $t1", 0x28, t0, t1); 1125 TESTINST3("not $t0, $t1", -258, t0, t1); 1126 TESTINST3("not $t0, $t1", 0x7fffffff, t0, t1); 1127 TESTINST3("not $t0, $t1", -11, t0, t1); 1128 TESTINST3("not $t0, $t1", 0xffffffff, t0, t1); 1129 TESTINST3("not $t0, $t1", 0x16, t0, t1); 1130 TESTINST3("not $t0, $t1", -1, t0, t1); 1131 1132 printf("NEGU\n"); 1133 TESTINST3("negu $t0, $t1", 0x2, t0, t1); 1134 TESTINST3("negu $t0, $t1", 0x28, t0, t1); 1135 TESTINST3("negu $t0, $t1", -258, t0, t1); 1136 TESTINST3("negu $t0, $t1", 0x7fffffff, t0, t1); 1137 TESTINST3("negu $t0, $t1", -11, t0, t1); 1138 TESTINST3("negu $t0, $t1", 0xffffffff, t0, t1); 1139 TESTINST3("negu $t0, $t1", 0x16, t0, t1); 1140 TESTINST3("negu $t0, $t1", -1, t0, t1); 1141 1142 printf("OR\n"); 1143 TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1144 TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1145 TESTINST1("or $t0, $t1, $t2", 0, 255, t0, t1, t2); 1146 TESTINST1("or $t0, $t1, $t2", -1, 0, t0, t1, t2); 1147 TESTINST1("or $t0, $t1, $t2", 0, 1, t0, t1, t2); 1148 TESTINST1("or $t0, $t1, $t2", 0, 0, t0, t1, t2); 1149 TESTINST1("or $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1150 TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1151 TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1152 TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1153 TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1154 TESTINST1("or $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1155 TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1156 TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1157 TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1158 TESTINST1("or $t0, $t1, $t2", 0, 255, t0, t1, t2); 1159 TESTINST1("or $t0, $t1, $t2", 1, 0, t0, t1, t2); 1160 TESTINST1("or $t0, $t1, $t2", 0, 1, t0, t1, t2); 1161 TESTINST1("or $t0, $t1, $t2", -1, 0, t0, t1, t2); 1162 TESTINST1("or $t0, $t1, $t2", 0, -1, t0, t1, t2); 1163 TESTINST1("or $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1164 TESTINST1("or $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1165 TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1166 TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1167 TESTINST1("or $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1168 TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1169 TESTINST1("or $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1170 TESTINST1("or $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1171 TESTINST1("or $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1172 TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1173 TESTINST1("or $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1174 1175 printf("ORI\n"); 1176 TESTINST2("ori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1); 1177 TESTINST2("ori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1); 1178 TESTINST2("ori $t0, $t1, 255", 0, 255, t0, t1); 1179 TESTINST2("ori $t0, $t1, 0", -1, 0, t0, t1); 1180 TESTINST2("ori $t0, $t1, 1", 0, 1, t0, t1); 1181 TESTINST2("ori $t0, $t1, 0", 0, 0, t0, t1); 1182 TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1); 1183 TESTINST2("ori $t0, $t1, 0", 0x7fffffff, 0, t0, t1); 1184 TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1); 1185 TESTINST2("ori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1); 1186 TESTINST2("ori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1); 1187 TESTINST2("ori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1); 1188 TESTINST2("ori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1); 1189 TESTINST2("ori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1); 1190 TESTINST2("ori $t0, $t1, 255", 0, 255, t0, t1); 1191 TESTINST2("ori $t0, $t1, 0", 1, 0, t0, t1); 1192 TESTINST2("ori $t0, $t1, 1", 0, 1, t0, t1); 1193 TESTINST2("ori $t0, $t1, 0", -1, 0, t0, t1); 1194 TESTINST2("ori $t0, $t1, 0x8000", 0, 0x8000, t0, t1); 1195 TESTINST2("ori $t0, $t1, 0", 0x8000, 0, t0, t1); 1196 TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1); 1197 TESTINST2("ori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1); 1198 TESTINST2("ori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1); 1199 TESTINST2("ori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1); 1200 TESTINST2("ori $t0, $t1, 0", 0xffff, 0, t0, t1); 1201 TESTINST2("ori $t0, $t1, 0xffff", 0, 0xffff, t0, t1); 1202 TESTINST2("ori $t0, $t1, 0xffff", 0xffffffff, 0xffff, t0, t1); 1203 TESTINST2("ori $t0, $t1, 0x7fff", 0x7fffffff, 0x7fff, t0, t1); 1204 TESTINST2("ori $t0, $t1, 0x0000", 0x0000ffff, 0x0000, t0, t1); 1205 1206#if (__mips==32) && (__mips_isa_rev>=2) 1207 printf("ROTR\n"); 1208 TESTINST2("rotr $t0, $t1, 0x00000000", 0x31415927, 0x00000000, t0, t1); 1209 TESTINST2("rotr $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1); 1210 TESTINST2("rotr $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1); 1211 TESTINST2("rotr $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1); 1212 TESTINST2("rotr $t0, $t1, 0x00000010", 0x31415927, 0x00000010, t0, t1); 1213 TESTINST2("rotr $t0, $t1, 0x0000001F", 0x31415927, 0x0000001F, t0, t1); 1214 TESTINST2("rotr $t0, $t1, 0x00000020", 0x31415927, 0x00000020, t0, t1); 1215 TESTINST2("rotr $t0, $t1, 0x00000021", 0x31415927, 0x00000021, t0, t1); 1216 TESTINST2("rotr $t0, $t1, 0x00000000", 0x00088000, 0x00000000, t0, t1); 1217 TESTINST2("rotr $t0, $t1, 0x00000001", 0x00088000, 0x00000001, t0, t1); 1218 TESTINST2("rotr $t0, $t1, 31", 0x00088000, 31, t0, t1); 1219 TESTINST2("rotr $t0, $t1, 16", 0x00010000, 16, t0, t1); 1220 TESTINST2("rotr $t0, $t1, 17", 0x00010000, 17, t0, t1); 1221 TESTINST2("rotr $t0, $t1, 18", 0x00010000, 18, t0, t1); 1222 TESTINST2("rotr $t0, $t1, 0", 0, 0, t0, t1); 1223 TESTINST2("rotr $t0, $t1, 0xffff", 0xffff, 0xffff, t0, t1); 1224#endif 1225 1226#if (__mips==32) && (__mips_isa_rev>=2) 1227 printf("ROTRV\n"); 1228 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1229 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1230 TESTINST1("rotrv $t0, $t1, $t2", 0, 255, t0, t1, t2); 1231 TESTINST1("rotrv $t0, $t1, $t2", -1, 0, t0, t1, t2); 1232 TESTINST1("rotrv $t0, $t1, $t2", 0, 1, t0, t1, t2); 1233 TESTINST1("rotrv $t0, $t1, $t2", 0, 0, t0, t1, t2); 1234 TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1235 TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1236 TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1237 TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1238 TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1239 TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1240 TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1241 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1242 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1243 TESTINST1("rotrv $t0, $t1, $t2", 0, 255, t0, t1, t2); 1244 TESTINST1("rotrv $t0, $t1, $t2", 1, 0, t0, t1, t2); 1245 TESTINST1("rotrv $t0, $t1, $t2", 0, 1, t0, t1, t2); 1246 TESTINST1("rotrv $t0, $t1, $t2", -1, 0, t0, t1, t2); 1247 TESTINST1("rotrv $t0, $t1, $t2", 0, -1, t0, t1, t2); 1248 TESTINST1("rotrv $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1249 TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1250 TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1251 TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1252 TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1253 TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1254 TESTINST1("rotrv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1255 TESTINST1("rotrv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1256 TESTINST1("rotrv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1257 TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1258 TESTINST1("rotrv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1259 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2); 1260 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1261 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2); 1262 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2); 1263 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2); 1264 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2); 1265 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2); 1266 TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2); 1267 TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2); 1268 TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2); 1269 TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2); 1270 TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2); 1271 TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2); 1272 TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2); 1273 TESTINST1("rotrv $t0, $t1, $t2", 0, 0, t0, t1, t2); 1274 TESTINST1("rotrv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2); 1275 1276 printf("SEB\n"); 1277 TESTINST3("seb $t0, $t1", 0x2, t0, t1); 1278 TESTINST3("seb $t0, $t1", 0x28, t0, t1); 1279 TESTINST3("seb $t0, $t1", -258, t0, t1); 1280 TESTINST3("seb $t0, $t1", 0x7fffffff, t0, t1); 1281 TESTINST3("seb $t0, $t1", -11, t0, t1); 1282 TESTINST3("seb $t0, $t1", 0xffffffff, t0, t1); 1283 TESTINST3("seb $t0, $t1", 0x16, t0, t1); 1284 TESTINST3("seb $t0, $t1", -1, t0, t1); 1285 1286 printf("SEH\n"); 1287 TESTINST3("seh $t0, $t1", 0x2, t0, t1); 1288 TESTINST3("seh $t0, $t1", 0x28, t0, t1); 1289 TESTINST3("seh $t0, $t1", -258, t0, t1); 1290 TESTINST3("seh $t0, $t1", 0x7fffffff, t0, t1); 1291 TESTINST3("seh $t0, $t1", -11, t0, t1); 1292 TESTINST3("seh $t0, $t1", 0xffffffff, t0, t1); 1293 TESTINST3("seh $t0, $t1", 0x16, t0, t1); 1294 TESTINST3("seh $t0, $t1", -1, t0, t1); 1295#endif 1296 1297 printf("SLL\n"); 1298 TESTINST2("sll $t0, $t1, 0x00000000", 0x31415927, 0x00000000, t0, t1); 1299 TESTINST2("sll $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1); 1300 TESTINST2("sll $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1); 1301 TESTINST2("sll $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1); 1302 TESTINST2("sll $t0, $t1, 0x00000010", 0x31415927, 0x00000010, t0, t1); 1303 TESTINST2("sll $t0, $t1, 0x0000001F", 0x31415927, 0x0000001F, t0, t1); 1304 TESTINST2("sll $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1); 1305 TESTINST2("sll $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1); 1306 TESTINST2("sll $t0, $t1, 0x00000000", 0x00088000, 0x00000000, t0, t1); 1307 TESTINST2("sll $t0, $t1, 0x00000001", 0x00088000, 0x00000001, t0, t1); 1308 TESTINST2("sll $t0, $t1, 31", 0x00088000, 31, t0, t1); 1309 TESTINST2("sll $t0, $t1, 16", 0x00010000, 16, t0, t1); 1310 TESTINST2("sll $t0, $t1, 17", 0x00010000, 17, t0, t1); 1311 TESTINST2("sll $t0, $t1, 18", 0x00010000, 18, t0, t1); 1312 TESTINST2("sll $t0, $t1, 0", 0, 0, t0, t1); 1313 1314 printf("SLLV\n"); 1315 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1316 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1317 TESTINST1("sllv $t0, $t1, $t2", 0, 255, t0, t1, t2); 1318 TESTINST1("sllv $t0, $t1, $t2", -1, 0, t0, t1, t2); 1319 TESTINST1("sllv $t0, $t1, $t2", 0, 1, t0, t1, t2); 1320 TESTINST1("sllv $t0, $t1, $t2", 0, 0, t0, t1, t2); 1321 TESTINST1("sllv $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1322 TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1323 TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1324 TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1325 TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1326 TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1327 TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1328 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1329 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1330 TESTINST1("sllv $t0, $t1, $t2", 0, 255, t0, t1, t2); 1331 TESTINST1("sllv $t0, $t1, $t2", 1, 0, t0, t1, t2); 1332 TESTINST1("sllv $t0, $t1, $t2", 0, 1, t0, t1, t2); 1333 TESTINST1("sllv $t0, $t1, $t2", -1, 0, t0, t1, t2); 1334 TESTINST1("sllv $t0, $t1, $t2", 0, -1, t0, t1, t2); 1335 TESTINST1("sllv $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1336 TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1337 TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1338 TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1339 TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1340 TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1341 TESTINST1("sllv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1342 TESTINST1("sllv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1343 TESTINST1("sllv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1344 TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1345 TESTINST1("sllv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1346 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2); 1347 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1348 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2); 1349 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2); 1350 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2); 1351 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2); 1352 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2); 1353 TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2); 1354 TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2); 1355 TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2); 1356 TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2); 1357 TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2); 1358 TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2); 1359 TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2); 1360 TESTINST1("sllv $t0, $t1, $t2", 0, 0, t0, t1, t2); 1361 TESTINST1("sllv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2); 1362 1363 printf("SLT\n"); 1364 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1365 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1366 TESTINST1("slt $t0, $t1, $t2", 0, 255, t0, t1, t2); 1367 TESTINST1("slt $t0, $t1, $t2", -1, 0, t0, t1, t2); 1368 TESTINST1("slt $t0, $t1, $t2", 0, 1, t0, t1, t2); 1369 TESTINST1("slt $t0, $t1, $t2", 0, 0, t0, t1, t2); 1370 TESTINST1("slt $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1371 TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1372 TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1373 TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1374 TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1375 TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1376 TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1377 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1378 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1379 TESTINST1("slt $t0, $t1, $t2", 0, 255, t0, t1, t2); 1380 TESTINST1("slt $t0, $t1, $t2", 1, 0, t0, t1, t2); 1381 TESTINST1("slt $t0, $t1, $t2", 0, 1, t0, t1, t2); 1382 TESTINST1("slt $t0, $t1, $t2", -1, 0, t0, t1, t2); 1383 TESTINST1("slt $t0, $t1, $t2", 0, -1, t0, t1, t2); 1384 TESTINST1("slt $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1385 TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1386 TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1387 TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1388 TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1389 TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1390 TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1391 TESTINST1("slt $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1392 TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1393 TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1394 TESTINST1("slt $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1395 TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1396 TESTINST1("slt $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1397 TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1398 TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1399 TESTINST1("slt $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1400 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2); 1401 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1402 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2); 1403 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2); 1404 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2); 1405 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2); 1406 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2); 1407 TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2); 1408 TESTINST1("slt $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2); 1409 TESTINST1("slt $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2); 1410 TESTINST1("slt $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2); 1411 TESTINST1("slt $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2); 1412 TESTINST1("slt $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2); 1413 TESTINST1("slt $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2); 1414 TESTINST1("slt $t0, $t1, $t2", 0, 0, t0, t1, t2); 1415 TESTINST1("slt $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2); 1416 1417 printf("SLTI\n"); 1418 TESTINST2("slti $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1); 1419 TESTINST2("slti $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1); 1420 TESTINST2("slti $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1); 1421 TESTINST2("slti $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1); 1422 TESTINST2("slti $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1); 1423 TESTINST2("slti $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1); 1424 TESTINST2("slti $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1); 1425 TESTINST2("slti $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1); 1426 TESTINST2("slti $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1); 1427 TESTINST2("slti $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1); 1428 TESTINST2("slti $t0, $t1, 31", 0x00088000, 31, t0, t1); 1429 TESTINST2("slti $t0, $t1, 16", 0x00010000, 16, t0, t1); 1430 TESTINST2("slti $t0, $t1, 17", 0x00010000, 17, t0, t1); 1431 TESTINST2("slti $t0, $t1, 18", 0x00010000, 18, t0, t1); 1432 TESTINST2("slti $t0, $t1, 0", 0, 0, t0, t1); 1433 1434 printf("SLTIU\n"); 1435 TESTINST2("sltiu $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1); 1436 TESTINST2("sltiu $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1); 1437 TESTINST2("sltiu $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1); 1438 TESTINST2("sltiu $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1); 1439 TESTINST2("sltiu $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1); 1440 TESTINST2("sltiu $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1); 1441 TESTINST2("sltiu $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1); 1442 TESTINST2("sltiu $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1); 1443 TESTINST2("sltiu $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1); 1444 TESTINST2("sltiu $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1); 1445 TESTINST2("sltiu $t0, $t1, 31", 0x00088000, 31, t0, t1); 1446 TESTINST2("sltiu $t0, $t1, 16", 0x00010000, 16, t0, t1); 1447 TESTINST2("sltiu $t0, $t1, 17", 0x00010000, 17, t0, t1); 1448 TESTINST2("sltiu $t0, $t1, 18", 0x00010000, 18, t0, t1); 1449 TESTINST2("sltiu $t0, $t1, 0", 0, 0, t0, t1); 1450 1451 printf("SLTU\n"); 1452 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1453 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1454 TESTINST1("sltu $t0, $t1, $t2", 0, 255, t0, t1, t2); 1455 TESTINST1("sltu $t0, $t1, $t2", -1, 0, t0, t1, t2); 1456 TESTINST1("sltu $t0, $t1, $t2", 0, 1, t0, t1, t2); 1457 TESTINST1("sltu $t0, $t1, $t2", 0, 0, t0, t1, t2); 1458 TESTINST1("sltu $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1459 TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1460 TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1461 TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1462 TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1463 TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1464 TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1465 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1466 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1467 TESTINST1("sltu $t0, $t1, $t2", 0, 255, t0, t1, t2); 1468 TESTINST1("sltu $t0, $t1, $t2", 1, 0, t0, t1, t2); 1469 TESTINST1("sltu $t0, $t1, $t2", 0, 1, t0, t1, t2); 1470 TESTINST1("sltu $t0, $t1, $t2", -1, 0, t0, t1, t2); 1471 TESTINST1("sltu $t0, $t1, $t2", 0, -1, t0, t1, t2); 1472 TESTINST1("sltu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1473 TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1474 TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1475 TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1476 TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1477 TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1478 TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1479 TESTINST1("sltu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1480 TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1481 TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1482 TESTINST1("sltu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1483 TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1484 TESTINST1("sltu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1485 TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1486 TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1487 TESTINST1("sltu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1488 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2); 1489 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1490 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2); 1491 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2); 1492 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2); 1493 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2); 1494 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2); 1495 TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2); 1496 TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2); 1497 TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2); 1498 TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2); 1499 TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2); 1500 TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2); 1501 TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2); 1502 TESTINST1("sltu $t0, $t1, $t2", 0, 0, t0, t1, t2); 1503 TESTINST1("sltu $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2); 1504 1505 printf("SRA\n"); 1506 TESTINST2("sra $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1); 1507 TESTINST2("sra $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1); 1508 TESTINST2("sra $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1); 1509 TESTINST2("sra $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1); 1510 TESTINST2("sra $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1); 1511 TESTINST2("sra $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1); 1512 TESTINST2("sra $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1); 1513 TESTINST2("sra $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1); 1514 TESTINST2("sra $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1); 1515 TESTINST2("sra $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1); 1516 TESTINST2("sra $t0, $t1, 31", 0x00088000, 31, t0, t1); 1517 TESTINST2("sra $t0, $t1, 16", 0x00010000, 16, t0, t1); 1518 TESTINST2("sra $t0, $t1, 17", 0x00010000, 17, t0, t1); 1519 TESTINST2("sra $t0, $t1, 18", 0x00010000, 18, t0, t1); 1520 TESTINST2("sra $t0, $t1, 0", 0, 0, t0, t1); 1521 1522 printf("SRAV\n"); 1523 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1524 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1525 TESTINST1("srav $t0, $t1, $t2", 0, 255, t0, t1, t2); 1526 TESTINST1("srav $t0, $t1, $t2", -1, 0, t0, t1, t2); 1527 TESTINST1("srav $t0, $t1, $t2", 0, 1, t0, t1, t2); 1528 TESTINST1("srav $t0, $t1, $t2", 0, 0, t0, t1, t2); 1529 TESTINST1("srav $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1530 TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1531 TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1532 TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1533 TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1534 TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1535 TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1536 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1537 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1538 TESTINST1("srav $t0, $t1, $t2", 0, 255, t0, t1, t2); 1539 TESTINST1("srav $t0, $t1, $t2", 1, 0, t0, t1, t2); 1540 TESTINST1("srav $t0, $t1, $t2", 0, 1, t0, t1, t2); 1541 TESTINST1("srav $t0, $t1, $t2", -1, 0, t0, t1, t2); 1542 TESTINST1("srav $t0, $t1, $t2", 0, -1, t0, t1, t2); 1543 TESTINST1("srav $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1544 TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1545 TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1546 TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1547 TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1548 TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1549 TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1550 TESTINST1("srav $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1551 TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1552 TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1553 TESTINST1("srav $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1554 TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1555 TESTINST1("srav $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1556 TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1557 TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1558 TESTINST1("srav $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1559 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2); 1560 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1561 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2); 1562 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2); 1563 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2); 1564 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2); 1565 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2); 1566 TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2); 1567 TESTINST1("srav $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2); 1568 TESTINST1("srav $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2); 1569 TESTINST1("srav $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2); 1570 TESTINST1("srav $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2); 1571 TESTINST1("srav $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2); 1572 TESTINST1("srav $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2); 1573 TESTINST1("srav $t0, $t1, $t2", 0, 0, t0, t1, t2); 1574 TESTINST1("srav $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2); 1575 1576 printf("SRL\n"); 1577 TESTINST2("srl $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1); 1578 TESTINST2("srl $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1); 1579 TESTINST2("srl $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1); 1580 TESTINST2("srl $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1); 1581 TESTINST2("srl $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1); 1582 TESTINST2("srl $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1); 1583 TESTINST2("srl $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1); 1584 TESTINST2("srl $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1); 1585 TESTINST2("srl $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1); 1586 TESTINST2("srl $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1); 1587 TESTINST2("srl $t0, $t1, 31", 0x00088000, 31, t0, t1); 1588 TESTINST2("srl $t0, $t1, 16", 0x00010000, 16, t0, t1); 1589 TESTINST2("srl $t0, $t1, 17", 0x00010000, 17, t0, t1); 1590 TESTINST2("srl $t0, $t1, 18", 0x00010000, 18, t0, t1); 1591 TESTINST2("srl $t0, $t1, 0", 0, 0, t0, t1); 1592 1593 printf("SRLV\n"); 1594 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1595 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1596 TESTINST1("srlv $t0, $t1, $t2", 0, 255, t0, t1, t2); 1597 TESTINST1("srlv $t0, $t1, $t2", -1, 0, t0, t1, t2); 1598 TESTINST1("srlv $t0, $t1, $t2", 0, 1, t0, t1, t2); 1599 TESTINST1("srlv $t0, $t1, $t2", 0, 0, t0, t1, t2); 1600 TESTINST1("srlv $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1601 TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1602 TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1603 TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1604 TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1605 TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1606 TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1607 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1608 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1609 TESTINST1("srlv $t0, $t1, $t2", 0, 255, t0, t1, t2); 1610 TESTINST1("srlv $t0, $t1, $t2", 1, 0, t0, t1, t2); 1611 TESTINST1("srlv $t0, $t1, $t2", 0, 1, t0, t1, t2); 1612 TESTINST1("srlv $t0, $t1, $t2", -1, 0, t0, t1, t2); 1613 TESTINST1("srlv $t0, $t1, $t2", 0, -1, t0, t1, t2); 1614 TESTINST1("srlv $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1615 TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1616 TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1617 TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1618 TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1619 TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1620 TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1621 TESTINST1("srlv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1622 TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1623 TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1624 TESTINST1("srlv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1625 TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1626 TESTINST1("srlv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1627 TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1628 TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1629 TESTINST1("srlv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1630 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2); 1631 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1632 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2); 1633 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2); 1634 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2); 1635 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2); 1636 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2); 1637 TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2); 1638 TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2); 1639 TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2); 1640 TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2); 1641 TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2); 1642 TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2); 1643 TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2); 1644 TESTINST1("srlv $t0, $t1, $t2", 0, 0, t0, t1, t2); 1645 TESTINST1("srlv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2); 1646 1647 printf("SUBU\n"); 1648 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1649 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00001110, t0, t1, t2); 1650 TESTINST1("subu $t0, $t1, $t2", 0, 255, t0, t1, t2); 1651 TESTINST1("subu $t0, $t1, $t2", -1, 0, t0, t1, t2); 1652 TESTINST1("subu $t0, $t1, $t2", 0, 1, t0, t1, t2); 1653 TESTINST1("subu $t0, $t1, $t2", 0, 0, t0, t1, t2); 1654 TESTINST1("subu $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1655 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1656 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1657 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1658 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1659 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1660 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1661 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1662 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1663 TESTINST1("subu $t0, $t1, $t2", 0, 255, t0, t1, t2); 1664 TESTINST1("subu $t0, $t1, $t2", 1, 0, t0, t1, t2); 1665 TESTINST1("subu $t0, $t1, $t2", 0, 1, t0, t1, t2); 1666 TESTINST1("subu $t0, $t1, $t2", -1, 0, t0, t1, t2); 1667 TESTINST1("subu $t0, $t1, $t2", 0, -1, t0, t1, t2); 1668 TESTINST1("subu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1669 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1670 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1671 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1672 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1673 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1674 TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1675 TESTINST1("subu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1676 TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1677 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1678 TESTINST1("subu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1679 TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1680 TESTINST1("subu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1681 TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1682 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1683 TESTINST1("subu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1684 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2); 1685 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2); 1686 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2); 1687 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2); 1688 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2); 1689 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2); 1690 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2); 1691 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2); 1692 TESTINST1("subu $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2); 1693 TESTINST1("subu $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2); 1694 TESTINST1("subu $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2); 1695 TESTINST1("subu $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2); 1696 TESTINST1("subu $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2); 1697 TESTINST1("subu $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2); 1698 TESTINST1("subu $t0, $t1, $t2", 0, 0, t0, t1, t2); 1699 TESTINST1("subu $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2); 1700 1701 printf("SUB\n"); 1702 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1703 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2); 1704 TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2); 1705 TESTINST1("subu $t0, $t1, $t2", 0, 0, t0, t1, t2); 1706 TESTINST1("subu $t0, $t1, $t2", 1, 0, t0, t1, t2); 1707 TESTINST1("subu $t0, $t1, $t2", 0, 1, t0, t1, t2); 1708 TESTINST1("subu $t0, $t1, $t2", -1, 0, t0, t1, t2); 1709 TESTINST1("subu $t0, $t1, $t2", 0, -1, t0, t1, t2); 1710 TESTINST1("subu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1711 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1712 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1713 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1714 TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x7fffffff, t0, t1, t2); 1715 TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1716 1717 printf("XOR\n"); 1718 TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1719 TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1720 TESTINST1("xor $t0, $t1, $t2", 0, 255, t0, t1, t2); 1721 TESTINST1("xor $t0, $t1, $t2", -1, 0, t0, t1, t2); 1722 TESTINST1("xor $t0, $t1, $t2", 0, 1, t0, t1, t2); 1723 TESTINST1("xor $t0, $t1, $t2", 0, 0, t0, t1, t2); 1724 TESTINST1("xor $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2); 1725 TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1726 TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2); 1727 TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1728 TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1729 TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1730 TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1731 TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); 1732 TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2); 1733 TESTINST1("xor $t0, $t1, $t2", 0, 255, t0, t1, t2); 1734 TESTINST1("xor $t0, $t1, $t2", 1, 0, t0, t1, t2); 1735 TESTINST1("xor $t0, $t1, $t2", 0, 1, t0, t1, t2); 1736 TESTINST1("xor $t0, $t1, $t2", -1, 0, t0, t1, t2); 1737 TESTINST1("xor $t0, $t1, $t2", 0, -1, t0, t1, t2); 1738 TESTINST1("xor $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); 1739 TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2); 1740 TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2); 1741 TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); 1742 TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2); 1743 TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2); 1744 TESTINST1("xor $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2); 1745 TESTINST1("xor $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2); 1746 TESTINST1("xor $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2); 1747 TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); 1748 TESTINST1("xor $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); 1749 1750 printf("XORI\n"); 1751 TESTINST2("xori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1); 1752 TESTINST2("xori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1); 1753 TESTINST2("xori $t0, $t1, 255", 0, 255, t0, t1); 1754 TESTINST2("xori $t0, $t1, 0", -1, 0, t0, t1); 1755 TESTINST2("xori $t0, $t1, 1", 0, 1, t0, t1); 1756 TESTINST2("xori $t0, $t1, 0", 0, 0, t0, t1); 1757 TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1); 1758 TESTINST2("xori $t0, $t1, 0", 0x7fffffff, 0, t0, t1); 1759 TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1); 1760 TESTINST2("xori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1); 1761 TESTINST2("xori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1); 1762 TESTINST2("xori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1); 1763 TESTINST2("xori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1); 1764 TESTINST2("xori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1); 1765 TESTINST2("xori $t0, $t1, 255", 0, 255, t0, t1); 1766 TESTINST2("xori $t0, $t1, 0", 1, 0, t0, t1); 1767 TESTINST2("xori $t0, $t1, 1", 0, 1, t0, t1); 1768 TESTINST2("xori $t0, $t1, 0", -1, 0, t0, t1); 1769 TESTINST2("xori $t0, $t1, 0x8000", 0, 0x8000, t0, t1); 1770 TESTINST2("xori $t0, $t1, 0", 0x8000, 0, t0, t1); 1771 TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1); 1772 TESTINST2("xori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1); 1773 TESTINST2("xori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1); 1774 TESTINST2("xori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1); 1775 TESTINST2("xori $t0, $t1, 0", 0xffff, 0, t0, t1); 1776 TESTINST2("xori $t0, $t1, 0xffff", 0, 0xffff, t0, t1); 1777 TESTINST2("xori $t0, $t1, 0xffff", 0xffffffff, 0xffff, t0, t1); 1778 TESTINST2("xori $t0, $t1, 0x7fff", 0x7fffffff, 0x7fff, t0, t1); 1779 TESTINST2("xori $t0, $t1, 0x0000", 0x0000ffff, 0x0000, t0, t1); 1780 1781 printf("MFHI MFLO\n"); 1782 TESTINSN_HILO(0x31415927); 1783 TESTINSN_HILO(0); 1784 TESTINSN_HILO(-1); 1785 TESTINSN_HILO(0xffffffff); 1786 TESTINSN_HILO(0x8000); 1787 TESTINSN_HILO(0x80000000); 1788 TESTINSN_HILO(0x0000ffff); 1789 TESTINSN_HILO(0x7fff); 1790 TESTINSN_HILO(0x0dd0); 1791 TESTINSN_HILO(0xff00); 1792 1793 return 0; 1794} 1795