mips-valgrind@rt-rk.com, Bug 270777.
Valgrind: new non-test files for mips32-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12618
--- /dev/null
+#include <stdio.h>
+
+typedef enum {
+ ABSS=0, ABSD,
+ ADDS, ADDD,
+ DIVS, DIVD,
+ MULS, MULD,
+ NEGS, NEGD,
+ SQRTS, SQRTD,
+ SUBS, SUBD,
+ RECIPS, RECIPD,
+ RSQRTS, RSQRTD
+} flt_art_op_t;
+
+const char *flt_art_op_names[] = {
+ "abs.s", "abs.d",
+ "add.s", "add.d",
+ "div.s", "div.d",
+ "mul.s", "mul.d",
+ "neg.s", "neg.d",
+ "sqrt.s", "sqrt.d",
+ "sub.s", "sub.d",
+ "recip.s", "recip.d",
+ "rsqrt.s", "rsqrt.d"
+};
+
+const double fs_d[] = {
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76,
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04
+};
+
+const double ft_d[] = {
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04,
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76
+};
+
+const float fs_f[] = {
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76,
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04
+};
+
+const float ft_f[] = {
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04,
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76
+};
+
+#define UNOPdd(op) \
+ fd_d = 0; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fd_d) : "f"(fs_d[i]));
+
+#define UNOPff(op) \
+ fd_f = 0; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fd_f) : "f"(fs_f[i]));
+
+#define BINOPf(op) \
+ fd_f = 0; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fd_f) : "f"(fs_f[i]) , "f"(ft_f[i]));
+
+#define BINOPd(op) \
+ fd_d = 0; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fd_d) : "f"(fs_d[i]) , "f"(ft_d[i]));
+
+int arithmeticOperations(flt_art_op_t op)
+{
+ double fd_d = 0;
+ float fd_f = 0;
+ int i = 0;
+ for (i = 0; i < 24; i++)
+ {
+ switch(op) {
+ case ABSS:
+ UNOPff("abs.s");
+ printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]);
+ break;
+ case ABSD:
+ UNOPdd("abs.d");
+ printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]);
+ break;
+ case ADDS:
+ BINOPf("add.s");
+ printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]);
+ break;
+ case ADDD:
+ BINOPd("add.d");
+ printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]);
+ break;
+ case DIVS:
+ BINOPf("div.s");
+ printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]);
+ break;
+ case DIVD:
+ BINOPd("div.d");
+ printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]);
+ break;
+ case MULS:
+ BINOPf("mul.s");
+ printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]);
+ break;
+ case MULD:
+ BINOPd("mul.d");
+ printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]);
+ break;
+ case NEGS:
+ UNOPff("neg.s");
+ printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]);
+ break;
+ case NEGD:
+ UNOPdd("neg.d");
+ printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]);
+ break;
+ case SQRTS:
+ UNOPff("sqrt.s");
+ printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]);
+ break;
+ case SQRTD:
+ UNOPdd("sqrt.d");
+ printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]);
+ break;
+ case SUBS:
+ BINOPf("sub.s");
+ printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]);
+ break;
+ case SUBD:
+ BINOPd("sub.d");
+ printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]);
+ break;
+ case RECIPS:
+ UNOPff("recip.s");
+ printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]);
+ break;
+ case RECIPD:
+ UNOPdd("recip.d");
+ printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]);
+ break;
+ case RSQRTS:
+ UNOPff("rsqrt.s");
+ printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]);
+ break;
+ case RSQRTD:
+ UNOPdd("rsqrt.d");
+ printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]);
+ break;
+ default:
+ printf("error\n");
+ break;
+ }
+ }
+ return 0;
+}
+
+int main()
+{
+ flt_art_op_t op;
+
+ printf("-------------------------- %s --------------------------\n",
+ "test FPU Arithmetic Operations");
+ for (op = ABSS; op <= RECIPD; op++) {
+ arithmeticOperations(op);
+ }
+
+ return 0;
+}
--- /dev/null
+-------------------------- test FPU Arithmetic Operations --------------------------
+abs.s 0.000000 0.000000
+abs.s 456.248962 456.248962
+abs.s 3.000000 3.000000
+abs.s 1.000000 -1.000000
+abs.s 1384.599976 1384.599976
+abs.s 7.294568 -7.294568
+abs.s 1000000000.000000 1000000000.000000
+abs.s 5786.470215 -5786.470215
+abs.s 1752.000000 1752.000000
+abs.s 0.002457 0.002457
+abs.s 0.000000 0.000000
+abs.s 248562.765625 -248562.765625
+abs.s 45786.476562 -45786.476562
+abs.s 456.248962 456.248962
+abs.s 34.000462 34.000462
+abs.s 45786.476562 45786.476562
+abs.s 1752065.000000 1752065.000000
+abs.s 107.000000 107.000000
+abs.s 45667.238281 -45667.238281
+abs.s 7.294568 -7.294568
+abs.s 347856.468750 -347856.468750
+abs.s 356047.562500 356047.562500
+abs.s 1.000000 -1.000000
+abs.s 23.040001 23.040001
+abs.d 0.000000 0.000000
+abs.d 456.248956 456.248956
+abs.d 3.000000 3.000000
+abs.d 1.000000 -1.000000
+abs.d 1384.600000 1384.600000
+abs.d 7.294568 -7.294568
+abs.d 1000000000.000000 1000000000.000000
+abs.d 5786.470000 -5786.470000
+abs.d 1752.000000 1752.000000
+abs.d 0.002458 0.002458
+abs.d 0.000000 0.000000
+abs.d 248562.760000 -248562.760000
+abs.d 45786.476000 -45786.476000
+abs.d 456.248956 456.248956
+abs.d 34.000460 34.000460
+abs.d 45786.476000 45786.476000
+abs.d 1752065.000000 1752065.000000
+abs.d 107.000000 107.000000
+abs.d 45667.240000 -45667.240000
+abs.d 7.294568 -7.294568
+abs.d 347856.475000 -347856.475000
+abs.d 356047.560000 356047.560000
+abs.d 1.000000 -1.000000
+abs.d 23.040000 23.040000
+add.s -45786.476562 0.000000 -45786.476562
+add.s 912.497925 456.248962 456.248962
+add.s 37.000462 3.000000 34.000462
+add.s 45785.476562 -1.000000 45786.476562
+add.s 1753449.625000 1384.599976 1752065.000000
+add.s 99.705429 -7.294568 107.000000
+add.s 999954304.000000 1000000000.000000 -45667.238281
+add.s -5793.764648 -5786.470215 -7.294568
+add.s -346104.468750 1752.000000 -347856.468750
+add.s 356047.562500 0.002457 356047.562500
+add.s -1.000000 0.000000 -1.000000
+add.s -248539.718750 -248562.765625 23.040001
+add.s -45786.476562 -45786.476562 0.000000
+add.s 912.497925 456.248962 456.248962
+add.s 37.000462 34.000462 3.000000
+add.s 45785.476562 45786.476562 -1.000000
+add.s 1753449.625000 1752065.000000 1384.599976
+add.s 99.705429 107.000000 -7.294568
+add.s 999954304.000000 -45667.238281 1000000000.000000
+add.s -5793.764648 -7.294568 -5786.470215
+add.s -346104.468750 -347856.468750 1752.000000
+add.s 356047.562500 356047.562500 0.002457
+add.s -1.000000 -1.000000 0.000000
+add.s -248539.718750 23.040001 -248562.765625
+add.d -45786.476000 0.000000 -45786.476000
+add.d 912.497912 456.248956 456.248956
+add.d 37.000460 3.000000 34.000460
+add.d 45785.476000 -1.000000 45786.476000
+add.d 1753449.600000 1384.600000 1752065.000000
+add.d 99.705432 -7.294568 107.000000
+add.d 999954332.760000 1000000000.000000 -45667.240000
+add.d -5793.764568 -5786.470000 -7.294568
+add.d -346104.475000 1752.000000 -347856.475000
+add.d 356047.562458 0.002458 356047.560000
+add.d -1.000000 0.000000 -1.000000
+add.d -248539.720000 -248562.760000 23.040000
+add.d -45786.476000 -45786.476000 0.000000
+add.d 912.497912 456.248956 456.248956
+add.d 37.000460 34.000460 3.000000
+add.d 45785.476000 45786.476000 -1.000000
+add.d 1753449.600000 1752065.000000 1384.600000
+add.d 99.705432 107.000000 -7.294568
+add.d 999954332.760000 -45667.240000 1000000000.000000
+add.d -5793.764568 -7.294568 -5786.470000
+add.d -346104.475000 -347856.475000 1752.000000
+add.d 356047.562458 356047.560000 0.002458
+add.d -1.000000 -1.000000 0.000000
+add.d -248539.720000 23.040000 -248562.760000
+div.s -0.000000 0.000000 -45786.476562
+div.s 1.000000 456.248962 456.248962
+div.s 0.088234 3.000000 34.000462
+div.s -0.000022 -1.000000 45786.476562
+div.s 0.000790 1384.599976 1752065.000000
+div.s -0.068174 -7.294568 107.000000
+div.s -21897.535156 1000000000.000000 -45667.238281
+div.s 793.257446 -5786.470215 -7.294568
+div.s -0.005037 1752.000000 -347856.468750
+div.s 0.000000 0.002457 356047.562500
+div.s -0.000000 0.000000 -1.000000
+div.s -10788.314453 -248562.765625 23.040001
+div.s -inf -45786.476562 0.000000
+div.s 1.000000 456.248962 456.248962
+div.s 11.333488 34.000462 3.000000
+div.s -45786.476562 45786.476562 -1.000000
+div.s 1265.394409 1752065.000000 1384.599976
+div.s -14.668450 107.000000 -7.294568
+div.s -0.000046 -45667.238281 1000000000.000000
+div.s 0.001261 -7.294568 -5786.470215
+div.s -198.548218 -347856.468750 1752.000000
+div.s 144882016.000000 356047.562500 0.002457
+div.s -100000000.000000 -1.000000 0.000000
+div.s -0.000093 23.040001 -248562.765625
+div.d -0.000000 0.000000 -45786.476000
+div.d 1.000000 456.248956 456.248956
+div.d 0.088234 3.000000 34.000460
+div.d -0.000022 -1.000000 45786.476000
+div.d 0.000790 1384.600000 1752065.000000
+div.d -0.068174 -7.294568 107.000000
+div.d -21897.535301 1000000000.000000 -45667.240000
+div.d 793.257437 -5786.470000 -7.294568
+div.d -0.005037 1752.000000 -347856.475000
+div.d 0.000000 0.002458 356047.560000
+div.d -0.000000 0.000000 -1.000000
+div.d -10788.314236 -248562.760000 23.040000
+div.d -inf -45786.476000 0.000000
+div.d 1.000000 456.248956 456.248956
+div.d 11.333487 34.000460 3.000000
+div.d -45786.476000 45786.476000 -1.000000
+div.d 1265.394338 1752065.000000 1384.600000
+div.d -14.668450 107.000000 -7.294568
+div.d -0.000046 -45667.240000 1000000000.000000
+div.d 0.001261 -7.294568 -5786.470000
+div.d -198.548216 -347856.475000 1752.000000
+div.d 144882018.311292 356047.560000 0.002458
+div.d -100000000.000000 -1.000000 0.000000
+div.d -0.000093 23.040000 -248562.760000
+mul.s -0.000000 0.000000 -45786.476562
+mul.s 208163.109375 456.248962 456.248962
+mul.s 102.001389 3.000000 34.000462
+mul.s -45786.476562 -1.000000 45786.476562
+mul.s 2425909248.000000 1384.599976 1752065.000000
+mul.s -780.518738 -7.294568 107.000000
+mul.s -45667238019072.000000 1000000000.000000 -45667.238281
+mul.s 42209.796875 -5786.470215 -7.294568
+mul.s -609444544.000000 1752.000000 -347856.468750
+mul.s 874.986877 0.002457 356047.562500
+mul.s -0.000000 0.000000 -1.000000
+mul.s -5726886.500000 -248562.765625 23.040001
+mul.s -0.000000 -45786.476562 0.000000
+mul.s 208163.109375 456.248962 456.248962
+mul.s 102.001389 34.000462 3.000000
+mul.s -45786.476562 45786.476562 -1.000000
+mul.s 2425909248.000000 1752065.000000 1384.599976
+mul.s -780.518738 107.000000 -7.294568
+mul.s -45667238019072.000000 -45667.238281 1000000000.000000
+mul.s 42209.796875 -7.294568 -5786.470215
+mul.s -609444544.000000 -347856.468750 1752.000000
+mul.s 874.986877 356047.562500 0.002457
+mul.s -0.000000 -1.000000 0.000000
+mul.s -5726886.500000 23.040001 -248562.765625
+mul.d -0.000000 0.000000 -45786.476000
+mul.d 208163.110034 456.248956 456.248956
+mul.d 102.001380 3.000000 34.000460
+mul.d -45786.476000 -1.000000 45786.476000
+mul.d 2425909199.000000 1384.600000 1752065.000000
+mul.d -780.518733 -7.294568 107.000000
+mul.d -45667240000000.000000 1000000000.000000 -45667.240000
+mul.d 42209.796580 -5786.470000 -7.294568
+mul.d -609444544.200000 1752.000000 -347856.475000
+mul.d 874.986879 0.002458 356047.560000
+mul.d -0.000000 0.000000 -1.000000
+mul.d -5726885.990400 -248562.760000 23.040000
+mul.d -0.000000 -45786.476000 0.000000
+mul.d 208163.110034 456.248956 456.248956
+mul.d 102.001380 34.000460 3.000000
+mul.d -45786.476000 45786.476000 -1.000000
+mul.d 2425909199.000000 1752065.000000 1384.600000
+mul.d -780.518733 107.000000 -7.294568
+mul.d -45667240000000.000000 -45667.240000 1000000000.000000
+mul.d 42209.796580 -7.294568 -5786.470000
+mul.d -609444544.200000 -347856.475000 1752.000000
+mul.d 874.986879 356047.560000 0.002458
+mul.d -0.000000 -1.000000 0.000000
+mul.d -5726885.990400 23.040000 -248562.760000
+neg.s -0.000000 0.000000
+neg.s -456.248962 456.248962
+neg.s -3.000000 3.000000
+neg.s 1.000000 -1.000000
+neg.s -1384.599976 1384.599976
+neg.s 7.294568 -7.294568
+neg.s -1000000000.000000 1000000000.000000
+neg.s 5786.470215 -5786.470215
+neg.s -1752.000000 1752.000000
+neg.s -0.002457 0.002457
+neg.s -0.000000 0.000000
+neg.s 248562.765625 -248562.765625
+neg.s 45786.476562 -45786.476562
+neg.s -456.248962 456.248962
+neg.s -34.000462 34.000462
+neg.s -45786.476562 45786.476562
+neg.s -1752065.000000 1752065.000000
+neg.s -107.000000 107.000000
+neg.s 45667.238281 -45667.238281
+neg.s 7.294568 -7.294568
+neg.s 347856.468750 -347856.468750
+neg.s -356047.562500 356047.562500
+neg.s 1.000000 -1.000000
+neg.s -23.040001 23.040001
+neg.d -0.000000 0.000000
+neg.d -456.248956 456.248956
+neg.d -3.000000 3.000000
+neg.d 1.000000 -1.000000
+neg.d -1384.600000 1384.600000
+neg.d 7.294568 -7.294568
+neg.d -1000000000.000000 1000000000.000000
+neg.d 5786.470000 -5786.470000
+neg.d -1752.000000 1752.000000
+neg.d -0.002458 0.002458
+neg.d -0.000000 0.000000
+neg.d 248562.760000 -248562.760000
+neg.d 45786.476000 -45786.476000
+neg.d -456.248956 456.248956
+neg.d -34.000460 34.000460
+neg.d -45786.476000 45786.476000
+neg.d -1752065.000000 1752065.000000
+neg.d -107.000000 107.000000
+neg.d 45667.240000 -45667.240000
+neg.d 7.294568 -7.294568
+neg.d 347856.475000 -347856.475000
+neg.d -356047.560000 356047.560000
+neg.d 1.000000 -1.000000
+neg.d -23.040000 23.040000
+sqrt.s 0.000000 0.000000
+sqrt.s 21.359985 456.248962
+sqrt.s 1.732051 3.000000
+sqrt.s nan -1.000000
+sqrt.s 37.210213 1384.599976
+sqrt.s nan -7.294568
+sqrt.s 31622.777344 1000000000.000000
+sqrt.s nan -5786.470215
+sqrt.s 41.856899 1752.000000
+sqrt.s 0.049573 0.002457
+sqrt.s 0.000100 0.000000
+sqrt.s nan -248562.765625
+sqrt.s nan -45786.476562
+sqrt.s 21.359985 456.248962
+sqrt.s 5.830991 34.000462
+sqrt.s 213.977753 45786.476562
+sqrt.s 1323.655884 1752065.000000
+sqrt.s 10.344080 107.000000
+sqrt.s nan -45667.238281
+sqrt.s nan -7.294568
+sqrt.s nan -347856.468750
+sqrt.s 596.697205 356047.562500
+sqrt.s nan -1.000000
+sqrt.s 4.800000 23.040001
+sqrt.d 0.000000 0.000000
+sqrt.d 21.359985 456.248956
+sqrt.d 1.732051 3.000000
+sqrt.d nan -1.000000
+sqrt.d 37.210214 1384.600000
+sqrt.d nan -7.294568
+sqrt.d 31622.776602 1000000000.000000
+sqrt.d nan -5786.470000
+sqrt.d 41.856899 1752.000000
+sqrt.d 0.049573 0.002458
+sqrt.d 0.000100 0.000000
+sqrt.d nan -248562.760000
+sqrt.d nan -45786.476000
+sqrt.d 21.359985 456.248956
+sqrt.d 5.830991 34.000460
+sqrt.d 213.977747 45786.476000
+sqrt.d 1323.655922 1752065.000000
+sqrt.d 10.344080 107.000000
+sqrt.d nan -45667.240000
+sqrt.d nan -7.294568
+sqrt.d nan -347856.475000
+sqrt.d 596.697210 356047.560000
+sqrt.d nan -1.000000
+sqrt.d 4.800000 23.040000
+sub.s 45786.476562 0.000000 -45786.476562
+sub.s 0.000000 456.248962 456.248962
+sub.s -31.000462 3.000000 34.000462
+sub.s -45787.476562 -1.000000 45786.476562
+sub.s -1750680.375000 1384.599976 1752065.000000
+sub.s -114.294571 -7.294568 107.000000
+sub.s 1000045696.000000 1000000000.000000 -45667.238281
+sub.s -5779.175781 -5786.470215 -7.294568
+sub.s 349608.468750 1752.000000 -347856.468750
+sub.s -356047.562500 0.002457 356047.562500
+sub.s 1.000000 0.000000 -1.000000
+sub.s -248585.812500 -248562.765625 23.040001
+sub.s -45786.476562 -45786.476562 0.000000
+sub.s 0.000000 456.248962 456.248962
+sub.s 31.000462 34.000462 3.000000
+sub.s 45787.476562 45786.476562 -1.000000
+sub.s 1750680.375000 1752065.000000 1384.599976
+sub.s 114.294571 107.000000 -7.294568
+sub.s -1000045696.000000 -45667.238281 1000000000.000000
+sub.s 5779.175781 -7.294568 -5786.470215
+sub.s -349608.468750 -347856.468750 1752.000000
+sub.s 356047.562500 356047.562500 0.002457
+sub.s -1.000000 -1.000000 0.000000
+sub.s 248585.812500 23.040001 -248562.765625
+sub.d 45786.476000 0.000000 -45786.476000
+sub.d 0.000000 456.248956 456.248956
+sub.d -31.000460 3.000000 34.000460
+sub.d -45787.476000 -1.000000 45786.476000
+sub.d -1750680.400000 1384.600000 1752065.000000
+sub.d -114.294568 -7.294568 107.000000
+sub.d 1000045667.240000 1000000000.000000 -45667.240000
+sub.d -5779.175432 -5786.470000 -7.294568
+sub.d 349608.475000 1752.000000 -347856.475000
+sub.d -356047.557542 0.002458 356047.560000
+sub.d 1.000000 0.000000 -1.000000
+sub.d -248585.800000 -248562.760000 23.040000
+sub.d -45786.476000 -45786.476000 0.000000
+sub.d 0.000000 456.248956 456.248956
+sub.d 31.000460 34.000460 3.000000
+sub.d 45787.476000 45786.476000 -1.000000
+sub.d 1750680.400000 1752065.000000 1384.600000
+sub.d 114.294568 107.000000 -7.294568
+sub.d -1000045667.240000 -45667.240000 1000000000.000000
+sub.d 5779.175432 -7.294568 -5786.470000
+sub.d -349608.475000 -347856.475000 1752.000000
+sub.d 356047.557542 356047.560000 0.002458
+sub.d -1.000000 -1.000000 0.000000
+sub.d 248585.800000 23.040000 -248562.760000
+recip.s inf 0.000000
+recip.s 0.002192 456.248962
+recip.s 0.333333 3.000000
+recip.s -1.000000 -1.000000
+recip.s 0.000722 1384.599976
+recip.s -0.137088 -7.294568
+recip.s 0.000000 1000000000.000000
+recip.s -0.000173 -5786.470215
+recip.s 0.000571 1752.000000
+recip.s 406.917603 0.002457
+recip.s 100000000.000000 0.000000
+recip.s -0.000004 -248562.765625
+recip.s -0.000022 -45786.476562
+recip.s 0.002192 456.248962
+recip.s 0.029411 34.000462
+recip.s 0.000022 45786.476562
+recip.s 0.000001 1752065.000000
+recip.s 0.009346 107.000000
+recip.s -0.000022 -45667.238281
+recip.s -0.137088 -7.294568
+recip.s -0.000003 -347856.468750
+recip.s 0.000003 356047.562500
+recip.s -1.000000 -1.000000
+recip.s 0.043403 23.040001
+recip.d inf 0.000000
+recip.d 0.002192 456.248956
+recip.d 0.333333 3.000000
+recip.d -1.000000 -1.000000
+recip.d 0.000722 1384.600000
+recip.d -0.137088 -7.294568
+recip.d 0.000000 1000000000.000000
+recip.d -0.000173 -5786.470000
+recip.d 0.000571 1752.000000
+recip.d 406.917599 0.002458
+recip.d 100000000.000000 0.000000
+recip.d -0.000004 -248562.760000
+recip.d -0.000022 -45786.476000
+recip.d 0.002192 456.248956
+recip.d 0.029411 34.000460
+recip.d 0.000022 45786.476000
+recip.d 0.000001 1752065.000000
+recip.d 0.009346 107.000000
+recip.d -0.000022 -45667.240000
+recip.d -0.137088 -7.294568
+recip.d -0.000003 -347856.475000
+recip.d 0.000003 356047.560000
+recip.d -1.000000 -1.000000
+recip.d 0.043403 23.040000
--- /dev/null
+prog: FPUarithmetic
+vgopts: -q
--- /dev/null
+#include <stdio.h>
+
+unsigned int mem[] = {
+ 0x121f1e1f, 0, 3, -1,
+ 0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a,
+ 0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a,
+ 0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+};
+
+unsigned int mem1[] = {
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0xffffffff, 0, 0, 0,
+ 0, 0, 0, 0
+};
+
+unsigned int mem2[] = {
+0x0000e680, 0x00010700, 0x0000e7dc, 0x0000b0d0,
+0x2ab05fd0, 0x0000b6a0, 0x0000be80, 0x0000de10,
+0x0000df20, 0x2ab05fe0, 0x0000dfd0, 0x00010300
+};
+
+// sb $t0, 0($t1)
+#define TESTINST1(instruction, RTval, offset, RT, RS) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $" #RS", %1\n\t" \
+ "li $" #RT", " #RTval"\n\t" \
+ instruction "\n\t" \
+ "lw %0, "#offset"($"#RS")\n\t" \
+ : "=&r" (out) \
+ : "r" (mem1), "r" (RTval) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: RTval: 0x%x, out: 0x%x\n", \
+ instruction, RTval, out); \
+ out = 0; \
+ __asm__ volatile( \
+ "move $" #RS", %1\n\t" \
+ "li $" #RT", " #RTval"\n\t" \
+ instruction "\n\t" \
+ "lw %0, "#offset"($"#RS")\n\t" \
+ : "=&r" (out) \
+ : "r" (mem), "r" (RTval) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: RTval: 0x%x, out: 0x%x\n", \
+ instruction, RTval, out); \
+}
+
+// swl $t0, 3($t1)
+// swr $t0, 0($t1)
+#define TESTINSTsw(RTval, offset, RT, RS) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $" #RS", %1\n\t" \
+ "addiu $"#RS", $"#RS", "#offset"\n\t" \
+ "li $" #RT", " #RTval"\n\t" \
+ "swl $t0, 3($t1) \n\t" \
+ "swr $t0, 0($t1) \n\t" \
+ "lw %0, 0($"#RS")\n\t" \
+ : "=&r" (out) \
+ : "r" (mem2), "r" (RTval) \
+ : #RT, #RS, "cc", "memory" \
+ ); \
+ printf("swl $t0, 3($t1)\nswr $t0, 0($t1)\n :: RTval: 0x%x, out: 0x%x\n", \
+ RTval, out); \
+}
+
+void ppMem(unsigned int* mem, int len)
+{
+ int i;
+ printf("MEM1:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("0x%x, 0x%x, 0x%x, 0x%x\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ mem[i] = 0;
+ mem[i+1] = 0;
+ mem[i+2] = 0;
+ mem[i+3] = 0;
+ if (i == 2)
+ {
+ mem[i] = 0xffffffff;
+ mem[i+1] = 0;
+ mem[i+2] = 0;
+ mem[i+3] = 0;
+ }
+ }
+}
+
+void ppMem1(unsigned int* mem, int len)
+{
+ int i;
+ printf("MEM:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("0x%x, 0x%x, 0x%x, 0x%x\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ }
+ mem[0] = 0x121f1e1f;
+ mem[1] = 0;
+ mem[2] = 3;
+ mem[3] = -1;
+ mem[4] = 0x232f2e2f;
+ mem[5] = 0x242c2b2b;
+ mem[6] = 0x252a2e2b;
+ mem[7] = 0x262d2d2a;
+ mem[8] = 0x3f343f3e;
+ mem[9] = 0x3e353d3c;
+ mem[10] = 0x363a3c3b;
+ mem[11] = 0x3b373b3a;
+ mem[12] = 0x454f4e45;
+ mem[13] = 0x4e464d46;
+ mem[14] = 0x474d474c;
+ mem[15] = 0x4a484a4c;
+}
+
+void ppMem0(unsigned int* mem, int len)
+{
+ int i;
+ printf("MEM:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("0x%x, 0x%x, 0x%x, 0x%x\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ }
+
+ mem[0] = 0x0000e680;
+ mem[1] = 0x00010700;
+ mem[2] = 0x0000e7dc;
+ mem[3] = 0x0000b0d0;
+ mem[4] = 0x2ab05fd0;
+ mem[5] = 0x0000b6a0;
+ mem[6] = 0x0000be80;
+ mem[7] = 0x0000de10;
+ mem[8] = 0x0000df20;
+ mem[9] = 0x2ab05fe0;
+ mem[10] = 0x0000dfd0;
+ mem[11] = 0x00010300;
+}
+
+int main()
+{
+ printf("sb\n");
+ TESTINST1("sb $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("sb $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("sb $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("sb $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("sb $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("sb $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sb $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sb $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("sb $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("sb $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("sb $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("sb $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("sb $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("sh\n");
+ TESTINST1("sh $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("sh $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("sh $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("sh $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("sh $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("sh $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sh $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sh $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("sh $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("sh $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("sh $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("sh $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("sh $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("sw\n");
+ TESTINST1("sw $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("sw $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("sw $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("sw $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("sw $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("sw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sw $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("sw $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("sw $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("sw $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("sw $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("sw $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("swl\n");
+ TESTINST1("swl $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("swl $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("swl $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("swl $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("swl $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("swl $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swl $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swl $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("swl $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("swl $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("swl $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("swl $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("swl $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("swr\n");
+ TESTINST1("swr $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("swr $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("swr $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("swr $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("swr $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("swr $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swr $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swr $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("swr $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("swr $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("swr $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("swr $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("swr $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("ulw\n");
+ TESTINST1("ulw $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("ulw $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("ulw $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("ulw $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("ulw $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("ulw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("ulw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("ulw $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("ulw $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("ulw $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("ulw $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("ulw $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("ulw $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("usw\n");
+ TESTINST1("usw $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("usw $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("usw $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("usw $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("usw $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("usw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("usw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("usw $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("usw $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("usw $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("usw $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("usw $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("usw $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("swl $t0, 3($t0)\nswr $t0, 0($t0)\n");
+ TESTINSTsw(0x4853000, 0, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x4853000, 4, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x4863700, 8, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x48aedd0, 12, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaee700, 16, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaee7ff, 20, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaeffff, 24, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x4863700, 28, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaee700, 32, t0, t1);
+ ppMem0(mem2, 12);
+ return 0;
+}
--- /dev/null
+sb
+sb $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sb $t0, 0($t1) :: RTval: 0x0, out: 0x121f1e00
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e27
+sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff
+sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121f1eff
+sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f1e00
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x1200
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x300ff
+sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff
+sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff00ff
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x12001e27
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x12001e00
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x12001e8f
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x12001e71
+sb $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sb $t0, 0($t1) :: RTval: 0xf, out: 0x12001e0f
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x12001e01
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x12001e35
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x12ff
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x12ff
+sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f343fff
+sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff
+sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e353dff
+sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x27
+sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a3c27
+sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff
+sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b373bff
+sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f4e00
+sb $t0, 52($t1) :: RTval: 0x28f, out: 0x8f
+sb $t0, 52($t1) :: RTval: 0x28f, out: 0x4e464d8f
+MEM1:
+0xff0035, 0xff0000, 0xff00ff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xff, 0x27, 0xff
+0x0, 0x8f, 0x0, 0x0
+MEM:
+0x12ff1e35, 0xff0000, 0xff00ff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3f343fff, 0x3e353dff, 0x363a3c27, 0x3b373bff
+0x454f4e00, 0x4e464d8f, 0x474d474c, 0x4a484a4c
+sh
+sh $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sh $t0, 0($t1) :: RTval: 0x0, out: 0x121f0000
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x5927
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f5927
+sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121fffff
+sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f0000
+sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x3ffff
+sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x5927
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x5927
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd71
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd71
+sh $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sh $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f34ffff
+sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e35ffff
+sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x5927
+sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a5927
+sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b37ffff
+sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f0000
+sh $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+sh $t0, 52($t1) :: RTval: 0x28f, out: 0x4e46028f
+MEM1:
+0xffff0035, 0xffff0000, 0xffffffff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffff, 0xffff, 0x5927, 0xffff
+0x0, 0x28f, 0x0, 0x0
+MEM:
+0xffff0035, 0xffff0000, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3f34ffff, 0x3e35ffff, 0x363a5927, 0x3b37ffff
+0x454f0000, 0x4e46028f, 0x474d474c, 0x4a484a4c
+sw
+sw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff0035, 0xffffffff, 0xffffffff, 0x7fff
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff0035, 0xffffffff, 0xffffffff, 0xffff7fff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+swl
+swl $t0, 0($t1) :: RTval: 0x0, out: 0x0
+swl $t0, 0($t1) :: RTval: 0x0, out: 0x121f1e00
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e31
+swl $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7f
+swl $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121f1e7f
+swl $t0, 0($t1) :: RTval: 0x80000000, out: 0x80
+swl $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f1e80
+swl $t0, 2($t1) :: RTval: 0x80000000, out: 0x80
+swl $t0, 2($t1) :: RTval: 0x80000000, out: 0x1280
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7f
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x3007f
+swl $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7f
+swl $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff007f
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0x7fffff
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0x7fffff
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x800031
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x12800031
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0x80000d
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0x1280000d
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x800000
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x12800000
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x8000ff
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x128000ff
+swl $t0, 0($t1) :: RTval: 0xf, out: 0x800000
+swl $t0, 0($t1) :: RTval: 0xf, out: 0x12800000
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x800000
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x12800000
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x800000
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x12800000
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff00ff
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff12ff
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff00ff
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff12ff
+swl $t0, 32($t1) :: RTval: 0xffffffff, out: 0xff
+swl $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f343fff
+swl $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff
+swl $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e353dff
+swl $t0, 40($t1) :: RTval: 0x31415927, out: 0x31
+swl $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a3c31
+swl $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7f
+swl $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b373b7f
+swl $t0, 48($t1) :: RTval: 0x80000000, out: 0x80
+swl $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f4e80
+swl $t0, 52($t1) :: RTval: 0x28f, out: 0x0
+swl $t0, 52($t1) :: RTval: 0x28f, out: 0x4e464d00
+MEM1:
+0xffffff, 0x7fffff, 0x7fffff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xff, 0xff, 0x31, 0x7f
+0x80, 0x0, 0x0, 0x0
+MEM:
+0x12ffffff, 0x7fffff, 0x7fffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3f343fff, 0x3e353dff, 0x363a3c31, 0x3b373b7f
+0x454f4e80, 0x4e464d00, 0x474d474c, 0x4a484a4c
+swr
+swr $t0, 0($t1) :: RTval: 0x0, out: 0x0
+swr $t0, 0($t1) :: RTval: 0x0, out: 0x0
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swr $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swr $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+swr $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+swr $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x3ffff
+swr $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff
+swr $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff
+swr $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swr $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swr $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+swr $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+swr $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+swr $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff0035, 0xffff0000, 0xffffffff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff0035, 0xffff0000, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+ulw
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x121f
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x30000
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x3
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x121f
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x121f
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f343f3e
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e353d3c
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a3c3b
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b373b3a
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f4e45
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x4e464d46
+MEM1:
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+MEM:
+0x121f1e1f, 0x0, 0x3, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a
+0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+usw
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff0035, 0xffffffff, 0xffffffff, 0x7fff
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff0035, 0xffffffff, 0xffffffff, 0xffff7fff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+swl $t0, 3($t0)
+swr $t0, 0($t0)
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0x4853000
+MEM:
+0x4853000, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0x4853000
+MEM:
+0xe680, 0x4853000, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0x4863700
+MEM:
+0xe680, 0x10700, 0x4863700, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x48aedd0, out: 0x48aedd0
+MEM:
+0xe680, 0x10700, 0xe7dc, 0x48aedd0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0x2aaee700
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2aaee700, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee7ff, out: 0x2aaee7ff
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0x2aaee7ff, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaeffff, out: 0x2aaeffff
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0x2aaeffff, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0x4863700
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0x4863700
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0x2aaee700
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0x2aaee700, 0x2ab05fe0, 0xdfd0, 0x10300
--- /dev/null
+sb
+sb $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sb $t0, 0($t1) :: RTval: 0x0, out: 0x1f1e1f
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x271f1e1f
+sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff1f1e1f
+sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x1f1e1f
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x1f0000
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff03ffff
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff00
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff03
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x271f001f
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x1f001f
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f000000
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f1f001f
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71000000
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x711f001f
+sb $t0, 0($t1) :: RTval: 0xf, out: 0xf000000
+sb $t0, 0($t1) :: RTval: 0xf, out: 0xf1f001f
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x1000000
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x11f001f
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x35000000
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x351f001f
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000000
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff1f0000
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000000
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff1f0000
+sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0xff343f3e
+sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff000000
+sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff353d3c
+sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x273a3c3b
+sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff373b3a
+sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x4f4e45
+sb $t0, 52($t1) :: RTval: 0x28f, out: 0x8f000000
+sb $t0, 52($t1) :: RTval: 0x28f, out: 0x8f464d46
+MEM1:
+0x3500ff00, 0xff00, 0xff00ff00, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xff000000, 0x27000000, 0xff000000
+0x0, 0x8f000000, 0x0, 0x0
+MEM:
+0x351fff1f, 0xff00, 0xff00ff03, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xff343f3e, 0xff353d3c, 0x273a3c3b, 0xff373b3a
+0x4f4e45, 0x8f464d46, 0x474d474c, 0x4a484a4c
+sh
+sh $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sh $t0, 0($t1) :: RTval: 0x0, out: 0x1e1f
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270000
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59271e1f
+sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xffff1e1f
+sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x1e1f
+sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270000
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270000
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0000
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0000
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710000
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710000
+sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0000
+sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0000
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x10000
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x10000
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x350000
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x350000
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffff3f3e
+sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffff3d3c
+sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x59270000
+sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x59273c3b
+sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xffff3b3a
+sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x4e45
+sh $t0, 52($t1) :: RTval: 0x28f, out: 0x28f0000
+sh $t0, 52($t1) :: RTval: 0x28f, out: 0x28f4d46
+MEM1:
+0x35ffff, 0xffff, 0xffffffff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffff0000, 0xffff0000, 0x59270000, 0xffff0000
+0x0, 0x28f0000, 0x0, 0x0
+MEM:
+0x35ffff, 0xffff, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffff3f3e, 0xffff3d3c, 0x59273c3b, 0xffff3b3a
+0x4e45, 0x28f4d46, 0x474d474c, 0x4a484a4c
+sw
+sw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff, 0xffff7fff, 0xffffffff, 0xffff0000
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff, 0xffff7fff, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+swl
+swl $t0, 0($t1) :: RTval: 0x0, out: 0x0
+swl $t0, 0($t1) :: RTval: 0x0, out: 0x0
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swl $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swl $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fff0000
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fff0000
+swl $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fff0000
+swl $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swl $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swl $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000
+swl $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swl $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swl $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+swl $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff, 0x7fff, 0xffffffff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff, 0x7fff, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+swr
+swr $t0, 0($t1) :: RTval: 0x0, out: 0x0
+swr $t0, 0($t1) :: RTval: 0x0, out: 0x1f1e1f
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x271f1e1f
+swr $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff1f1e1f
+swr $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 0($t1) :: RTval: 0x80000000, out: 0x1f1e1f
+swr $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 2($t1) :: RTval: 0x80000000, out: 0x1f0000
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff03ffff
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffff00
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffff03
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x2700001f
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0x1f
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x8f000000
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x8f00001f
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71000000
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x7100001f
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf000000
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf00001f
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x1000000
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x100001f
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x35000000
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x3500001f
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff1fffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff1fffff
+swr $t0, 32($t1) :: RTval: 0xffffffff, out: 0xff000000
+swr $t0, 32($t1) :: RTval: 0xffffffff, out: 0xff343f3e
+swr $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff000000
+swr $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff353d3c
+swr $t0, 40($t1) :: RTval: 0x31415927, out: 0x27000000
+swr $t0, 40($t1) :: RTval: 0x31415927, out: 0x273a3c3b
+swr $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff373b3a
+swr $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 48($t1) :: RTval: 0x80000000, out: 0x4f4e45
+swr $t0, 52($t1) :: RTval: 0x28f, out: 0x8f000000
+swr $t0, 52($t1) :: RTval: 0x28f, out: 0x8f464d46
+MEM1:
+0xffffff00, 0xffffff00, 0xffffff00, 0x0
+0x0, 0x0, 0x0, 0x0
+0xff000000, 0xff000000, 0x27000000, 0xff000000
+0x0, 0x8f000000, 0x0, 0x0
+MEM:
+0xffffff1f, 0xffffff00, 0xffffff03, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xff343f3e, 0xff353d3c, 0x273a3c3b, 0xff373b3a
+0x4f4e45, 0x8f464d46, 0x474d474c, 0x4a484a4c
+ulw
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x1e1f0000
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x3ffff
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x3
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x1e1f0000
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x1e1f0000
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f343f3e
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e353d3c
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a3c3b
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b373b3a
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f4e45
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x4e464d46
+MEM1:
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+MEM:
+0x121f1e1f, 0x0, 0x3, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a
+0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+usw
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff, 0xffff7fff, 0xffffffff, 0xffff0000
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff, 0xffff7fff, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+swl $t0, 3($t0)
+swr $t0, 0($t0)
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0xe604
+MEM:
+0xe604, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0x10704
+MEM:
+0xe680, 0x10704, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0xe704
+MEM:
+0xe680, 0x10700, 0xe704, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x48aedd0, out: 0xd000b004
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xd000b004
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0xb05f2a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0xb05f2a, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee7ff, out: 0xff00b62a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xff00b62a, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaeffff, out: 0xff00be2a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xff00be2a, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0xde04
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde04
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0xdf2a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf2a, 0x2ab05fe0, 0xdfd0, 0x10300
--- /dev/null
+prog: LoadStore
+vgopts: -q
--- /dev/null
+#include <stdio.h>
+
+unsigned int mem[] = {
+ 0x121f1e1f, 0, 3, -1,
+ 0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a,
+ 0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a,
+ 0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+};
+
+unsigned int mem1[] = {
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0xffffffff, 0, 0, 0,
+ 0, 0, 0, 0
+};
+
+unsigned int mem2[] = {
+0x0000e680, 0x00010700, 0x0000e7dc, 0x0000b0d0,
+0x2ab05fd0, 0x0000b6a0, 0x0000be80, 0x0000de10,
+0x0000df20, 0x2ab05fe0, 0x0000dfd0, 0x00010300
+};
+
+// sb $t0, 0($t1)
+#define TESTINST1(instruction, RTval, offset, RT, RS) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $" #RS", %1\n\t" \
+ "li $" #RT", " #RTval"\n\t" \
+ instruction "\n\t" \
+ "lw %0, "#offset"($"#RS")\n\t" \
+ : "=&r" (out) \
+ : "r" (mem1), "r" (RTval) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: RTval: 0x%x, out: 0x%x\n", \
+ instruction, RTval, out); \
+ out = 0; \
+ __asm__ volatile( \
+ "move $" #RS", %1\n\t" \
+ "li $" #RT", " #RTval"\n\t" \
+ instruction "\n\t" \
+ "lw %0, "#offset"($"#RS")\n\t" \
+ : "=&r" (out) \
+ : "r" (mem), "r" (RTval) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: RTval: 0x%x, out: 0x%x\n", \
+ instruction, RTval, out); \
+}
+
+// swl $t0, 3($t1)
+// swr $t0, 0($t1)
+#define TESTINSTsw(RTval, offset, RT, RS) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $" #RS", %1\n\t" \
+ "addiu $"#RS", $"#RS", "#offset"\n\t" \
+ "li $" #RT", " #RTval"\n\t" \
+ "swl $t0, 3($t1) \n\t" \
+ "swr $t0, 0($t1) \n\t" \
+ "lw %0, 0($"#RS")\n\t" \
+ : "=&r" (out) \
+ : "r" (mem2), "r" (RTval) \
+ : #RT, #RS, "cc", "memory" \
+ ); \
+ printf("swl $t0, 3($t1)\nswr $t0, 0($t1)\n :: RTval: 0x%x, out: 0x%x\n", \
+ RTval, out); \
+}
+
+void ppMem(unsigned int* mem, int len)
+{
+ int i;
+ printf("MEM1:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("0x%x, 0x%x, 0x%x, 0x%x\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ mem[i] = 0;
+ mem[i+1] = 0;
+ mem[i+2] = 0;
+ mem[i+3] = 0;
+ if (i == 2)
+ {
+ mem[i] = 0xffffffff;
+ mem[i+1] = 0;
+ mem[i+2] = 0;
+ mem[i+3] = 0;
+ }
+ }
+}
+
+void ppMem1(unsigned int* mem, int len)
+{
+ int i;
+ printf("MEM:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("0x%x, 0x%x, 0x%x, 0x%x\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ }
+ mem[0] = 0x121f1e1f;
+ mem[1] = 0;
+ mem[2] = 3;
+ mem[3] = -1;
+ mem[4] = 0x232f2e2f;
+ mem[5] = 0x242c2b2b;
+ mem[6] = 0x252a2e2b;
+ mem[7] = 0x262d2d2a;
+ mem[8] = 0x3f343f3e;
+ mem[9] = 0x3e353d3c;
+ mem[10] = 0x363a3c3b;
+ mem[11] = 0x3b373b3a;
+ mem[12] = 0x454f4e45;
+ mem[13] = 0x4e464d46;
+ mem[14] = 0x474d474c;
+ mem[15] = 0x4a484a4c;
+}
+
+void ppMem0(unsigned int* mem, int len)
+{
+ int i;
+ printf("MEM:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("0x%x, 0x%x, 0x%x, 0x%x\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ }
+
+ mem[0] = 0x0000e680;
+ mem[1] = 0x00010700;
+ mem[2] = 0x0000e7dc;
+ mem[3] = 0x0000b0d0;
+ mem[4] = 0x2ab05fd0;
+ mem[5] = 0x0000b6a0;
+ mem[6] = 0x0000be80;
+ mem[7] = 0x0000de10;
+ mem[8] = 0x0000df20;
+ mem[9] = 0x2ab05fe0;
+ mem[10] = 0x0000dfd0;
+ mem[11] = 0x00010300;
+}
+
+int main()
+{
+ printf("sb\n");
+ TESTINST1("sb $t0, 3($t1)", 0, 3, t0, t1);
+ TESTINST1("sb $t0, 5($t1)", 0x31415927, 5, t0, t1);
+ TESTINST1("sb $t0, 7($t1)", 0x7fffffff, 7, t0, t1);
+ TESTINST1("sb $t0, 1($t1)", 0x80000000, 1, t0, t1);
+ TESTINST1("sb $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("sb $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("sb $t0, 11($t1)", 0x7fffffff, 11, t0, t1);
+ TESTINST1("sb $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("sb $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("sb $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sb $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sb $t0, 31($t1)", 0xffffffff, 31, t0, t1);
+ TESTINST1("sb $t0, 35($t1)", 0xffffffff, 35, t0, t1);
+ TESTINST1("sb $t0, 41($t1)", 0x31415927, 41, t0, t1);
+ TESTINST1("sb $t0, 42($t1)", 0x7fffffff, 42, t0, t1);
+ TESTINST1("sb $t0, 45($t1)", 0x80000000, 45, t0, t1);
+ TESTINST1("sb $t0, 51($t1)", 655, 51, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("sh\n");
+ TESTINST1("sh $t0, 1($t1)", 0, 1, t0, t1);
+ TESTINST1("sh $t0, 3($t1)", 0x31415927, 3, t0, t1);
+ TESTINST1("sh $t0, 5($t1)", 0x7fffffff, 5, t0, t1);
+ TESTINST1("sh $t0, 7($t1)", 0x80000000, 7, t0, t1);
+ TESTINST1("sh $t0, 9($t1)", 0x80000000, 9, t0, t1);
+ TESTINST1("sh $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("sh $t0, 11($t1)", 0x7fffffff, 11, t0, t1);
+ TESTINST1("sh $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("sh $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("sh $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sh $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sh $t0, 31($t1)", 0xffffffff, 31, t0, t1);
+ TESTINST1("sh $t0, 35($t1)", 0xffffffff, 35, t0, t1);
+ TESTINST1("sh $t0, 41($t1)", 0x31415927, 41, t0, t1);
+ TESTINST1("sh $t0, 47($t1)", 0x7fffffff, 47, t0, t1);
+ TESTINST1("sh $t0, 49($t1)", 0x80000000, 49, t0, t1);
+ TESTINST1("sh $t0, 51($t1)", 655, 51, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("sw\n");
+ TESTINST1("sw $t0, 1($t1)", 0, 1, t0, t1);
+ TESTINST1("sw $t0, 3($t1)", 0x31415927, 3, t0, t1);
+ TESTINST1("sw $t0, 5($t1)", 0x7fffffff, 5, t0, t1);
+ TESTINST1("sw $t0, 7($t1)", 0x80000000, 7, t0, t1);
+ TESTINST1("sw $t0, 9($t1)", 0x80000000, 9, t0, t1);
+ TESTINST1("sw $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("sw $t0, 15($t1)", 0x7fffffff, 11, t0, t1);
+ TESTINST1("sw $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("sw $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("sw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("sw $t0, 31($t1)", 0xffffffff, 31, t0, t1);
+ TESTINST1("sw $t0, 37($t1)", 0xffffffff, 37, t0, t1);
+ TESTINST1("sw $t0, 49($t1)", 0x31415927, 49, t0, t1);
+ TESTINST1("sw $t0, 41($t1)", 0x7fffffff, 41, t0, t1);
+ TESTINST1("sw $t0, 43($t1)", 0x80000000, 43, t0, t1);
+ TESTINST1("sw $t0, 51($t1)", 655, 51, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("swl\n");
+ TESTINST1("swl $t0, 1($t1)", 0, 1, t0, t1);
+ TESTINST1("swl $t0, 3($t1)", 0x31415927, 3, t0, t1);
+ TESTINST1("swl $t0, 5($t1)", 0x7fffffff, 5, t0, t1);
+ TESTINST1("swl $t0, 7($t1)", 0x80000000, 7, t0, t1);
+ TESTINST1("swl $t0, 9($t1)", 0x80000000, 9, t0, t1);
+ TESTINST1("swl $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("swl $t0, 11($t1)", 0x7fffffff, 11, t0, t1);
+ TESTINST1("swl $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("swl $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("swl $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swl $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swl $t0, 33($t1)", 0xffffffff, 33, t0, t1);
+ TESTINST1("swl $t0, 35($t1)", 0xffffffff, 35, t0, t1);
+ TESTINST1("swl $t0, 41($t1)", 0x31415927, 41, t0, t1);
+ TESTINST1("swl $t0, 45($t1)", 0x7fffffff, 45, t0, t1);
+ TESTINST1("swl $t0, 49($t1)", 0x80000000, 49, t0, t1);
+ TESTINST1("swl $t0, 51($t1)", 655, 51, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("swr\n");
+ TESTINST1("swr $t0, 1($t1)", 0, 1, t0, t1);
+ TESTINST1("swr $t0, 3($t1)", 0x31415927, 3, t0, t1);
+ TESTINST1("swr $t0, 5($t1)", 0x7fffffff, 5, t0, t1);
+ TESTINST1("swr $t0, 7($t1)", 0x80000000, 7, t0, t1);
+ TESTINST1("swr $t0, 9($t1)", 0x80000000, 9, t0, t1);
+ TESTINST1("swr $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("swr $t0, 11($t1)", 0x7fffffff, 11, t0, t1);
+ TESTINST1("swr $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("swr $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("swr $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swr $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("swr $t0, 31($t1)", 0xffffffff, 31, t0, t1);
+ TESTINST1("swr $t0, 33($t1)", 0xffffffff, 33, t0, t1);
+ TESTINST1("swr $t0, 45($t1)", 0x31415927, 45, t0, t1);
+ TESTINST1("swr $t0, 47($t1)", 0x7fffffff, 47, t0, t1);
+ TESTINST1("swr $t0, 49($t1)", 0x80000000, 49, t0, t1);
+ TESTINST1("swr $t0, 51($t1)", 655, 51, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("ulw\n");
+ TESTINST1("ulw $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("ulw $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("ulw $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("ulw $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("ulw $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("ulw $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("ulw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("ulw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("ulw $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("ulw $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("ulw $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("ulw $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("ulw $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("ulw $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("usw\n");
+ TESTINST1("usw $t0, 0($t1)", 0, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x7fffffff, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x80000000, 0, t0, t1);
+ TESTINST1("usw $t0, 2($t1)", 0x80000000, 2, t0, t1);
+ TESTINST1("usw $t0, 6($t1)", 0x7fffffff, 6, t0, t1);
+ TESTINST1("usw $t0, 10($t1)", 0x7fffffff, 10, t0, t1);
+ TESTINST1("usw $t0, 8($t1)", -1, 8, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x31415927, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 0x0dd00000, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 655, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", -655, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 15, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 1, 0, t0, t1);
+ TESTINST1("usw $t0, 0($t1)", 53, 0, t0, t1);
+ TESTINST1("usw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("usw $t0, 2($t1)", 0xffffffff, 2, t0, t1);
+ TESTINST1("usw $t0, 32($t1)", 0xffffffff, 32, t0, t1);
+ TESTINST1("usw $t0, 36($t1)", 0xffffffff, 36, t0, t1);
+ TESTINST1("usw $t0, 40($t1)", 0x31415927, 40, t0, t1);
+ TESTINST1("usw $t0, 44($t1)", 0x7fffffff, 44, t0, t1);
+ TESTINST1("usw $t0, 48($t1)", 0x80000000, 48, t0, t1);
+ TESTINST1("usw $t0, 52($t1)", 655, 52, t0, t1);
+ ppMem(mem1, 16);
+ ppMem1(mem, 16);
+
+ printf("swl $t0, 3($t0)\nswr $t0, 0($t0)\n");
+ TESTINSTsw(0x4853000, 0, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x4853000, 4, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x4863700, 8, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x48aedd0, 12, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaee700, 16, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaee7ff, 20, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaeffff, 24, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x4863700, 28, t0, t1);
+ ppMem0(mem2, 12);
+ TESTINSTsw(0x2aaee700, 32, t0, t1);
+ ppMem0(mem2, 12);
+ return 0;
+}
+
--- /dev/null
+sb
+sb $t0, 3($t1) :: RTval: 0x0, out: 0x0
+sb $t0, 3($t1) :: RTval: 0x0, out: 0x0
+sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x1e0000
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f000000
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f000000
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71000000
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71000000
+sb $t0, 0($t1) :: RTval: 0xf, out: 0xf000000
+sb $t0, 0($t1) :: RTval: 0xf, out: 0xf000000
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x1000000
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x1000000
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x35000000
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x35000000
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027
+sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0xff3f343f
+sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff000000
+sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff3e353d
+sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x27000000
+sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x273c3b3b
+sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0xff000000
+sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0xff3b3b37
+sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x3b3a45
+sb $t0, 51($t1) :: RTval: 0x28f, out: 0x8f000000
+sb $t0, 51($t1) :: RTval: 0x28f, out: 0x8f4e464d
+MEM1:
+0x3500ff00, 0x27ffff, 0xff0000ff, 0x0
+0x0, 0x0, 0x0, 0xff
+0xffffffff, 0x0, 0x27ff00, 0x0
+0x8f, 0x0, 0x0, 0x0
+MEM:
+0x3500ff00, 0x27ffff, 0xff0000ff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2dff
+0x3f343fff, 0x3e353d3c, 0x3627ff3b, 0x3b003b3a
+0x454f4e8f, 0x4e464d46, 0x474d474c, 0x4a484a4c
+sh
+sh $t0, 1($t1) :: RTval: 0x0, out: 0x0
+sh $t0, 1($t1) :: RTval: 0x0, out: 0x1f00
+sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x59270000
+sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x59270000
+sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 9($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 9($t1) :: RTval: 0x80000000, out: 0x3ff
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffff00ff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffff00ff
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270059
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270059
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x59
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x59
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0059
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0059
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710059
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710059
+sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0059
+sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0059
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x10059
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x10059
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x350059
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x350059
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff
+sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffff343f
+sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0xffff0000
+sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0xffff353d
+sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x59270000
+sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x59273b3b
+sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xffff4f4e
+sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x454e
+sh $t0, 51($t1) :: RTval: 0x28f, out: 0x28f0000
+sh $t0, 51($t1) :: RTval: 0x28f, out: 0x28f464d
+MEM1:
+0x35ffff, 0x27ffffff, 0xffff00ff, 0xff000000
+0x0, 0x0, 0x0, 0xff
+0xff0000ff, 0xff000000, 0x592700, 0xff
+0xff000002, 0x8f000000, 0x0, 0x0
+MEM:
+0x35ffff, 0x27ffffff, 0xffff00ff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2dff
+0xff343fff, 0xff353d3c, 0x3659273b, 0x3b373bff
+0xff000002, 0x8f464d46, 0x474d474c, 0x4a484a4c
+sw
+sw $t0, 1($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 1($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0x0
+sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0xffff
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff, 0xffff7fff, 0xffffffff, 0x7f
+0xffffff00, 0x0, 0x0, 0xff
+0xffffff00, 0xffffff, 0xff7fff80, 0x0
+0x314100, 0x28f00, 0x0, 0x0
+MEM:
+0xffff, 0xffff7fff, 0xffffffff, 0xffff7f
+0xffffff2f, 0x242c2b2b, 0x252a2e2b, 0x262d2dff
+0xffffff3e, 0x3effffff, 0xff7fff80, 0x3a
+0x45314100, 0x28f46, 0x474d474c, 0x4a484a4c
+swl
+swl $t0, 1($t1) :: RTval: 0x0, out: 0x0
+swl $t0, 1($t1) :: RTval: 0x0, out: 0x0
+swl $t0, 3($t1) :: RTval: 0x31415927, out: 0x31000000
+swl $t0, 3($t1) :: RTval: 0x31415927, out: 0x31000000
+swl $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffff00
+swl $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffff00
+swl $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 9($t1) :: RTval: 0x80000000, out: 0x800000ff
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fff0080
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fff0080
+swl $t0, 11($t1) :: RTval: 0x7fffffff, out: 0x7f000000
+swl $t0, 11($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swl $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swl $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff007f
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff007f
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff007f
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff007f
+swl $t0, 33($t1) :: RTval: 0xffffffff, out: 0xffffff00
+swl $t0, 33($t1) :: RTval: 0xffffffff, out: 0xffffff3e
+swl $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff000000
+swl $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff3e353d
+swl $t0, 41($t1) :: RTval: 0x31415927, out: 0x31415900
+swl $t0, 41($t1) :: RTval: 0x31415927, out: 0x3141593b
+swl $t0, 45($t1) :: RTval: 0x7fffffff, out: 0x7fffff00
+swl $t0, 45($t1) :: RTval: 0x7fffffff, out: 0x7fffff45
+swl $t0, 49($t1) :: RTval: 0x80000000, out: 0x80000000
+swl $t0, 49($t1) :: RTval: 0x80000000, out: 0x8000004e
+swl $t0, 51($t1) :: RTval: 0x28f, out: 0x0
+swl $t0, 51($t1) :: RTval: 0x28f, out: 0x4e464d
+MEM1:
+0xffff, 0x7f7fff, 0xffffffff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffffff, 0x0, 0x314159, 0x7fffff
+0x800000, 0x0, 0x0, 0x0
+MEM:
+0xffff, 0x7f7fff, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3fffffff, 0x3e353d3c, 0x36314159, 0x3b7fffff
+0x45800000, 0x4e464d46, 0x474d474c, 0x4a484a4c
+swr
+swr $t0, 1($t1) :: RTval: 0x0, out: 0x0
+swr $t0, 1($t1) :: RTval: 0x0, out: 0x1e1f00
+swr $t0, 3($t1) :: RTval: 0x31415927, out: 0x27000000
+swr $t0, 3($t1) :: RTval: 0x31415927, out: 0x27000000
+swr $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 7($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 7($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 9($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 9($t1) :: RTval: 0x80000000, out: 0x3ff
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x27415927
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x27415927
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0x415927
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0x415927
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x8f415927
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x8f415927
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71415927
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71415927
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf415927
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf415927
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x1415927
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x1415927
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x35415927
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x35415927
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff27ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff27ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff27ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff27ffff
+swr $t0, 31($t1) :: RTval: 0xffffffff, out: 0xff000000
+swr $t0, 31($t1) :: RTval: 0xffffffff, out: 0xff3f343f
+swr $t0, 33($t1) :: RTval: 0xffffffff, out: 0xff000000
+swr $t0, 33($t1) :: RTval: 0xffffffff, out: 0xff3f3e3e
+swr $t0, 45($t1) :: RTval: 0x31415927, out: 0x27000000
+swr $t0, 45($t1) :: RTval: 0x31415927, out: 0x273b3a45
+swr $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xff000000
+swr $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xff454f4e
+swr $t0, 49($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 49($t1) :: RTval: 0x80000000, out: 0x4e454e
+swr $t0, 51($t1) :: RTval: 0x28f, out: 0x8f000000
+swr $t0, 51($t1) :: RTval: 0x28f, out: 0x8f4e464d
+MEM1:
+0xffffff27, 0xffffff00, 0xffffffff, 0x0
+0x0, 0x0, 0x0, 0xffffffff
+0xffff0000, 0x0, 0x0, 0x7fffffff
+0x28f, 0x0, 0x0, 0x0
+MEM:
+0xffffff27, 0xffffff00, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0xffffffff
+0xffff3f3e, 0x3e353d3c, 0x363a3c3b, 0x7fffffff
+0x28f, 0x4e464d46, 0x474d474c, 0x4a484a4c
+ulw
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x1e1f0000
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x3ffff
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x3
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x1e1f0000
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x1e1f0000
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f343f3e
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e353d3c
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a3c3b
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b373b3a
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f4e45
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x4e464d46
+MEM1:
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+MEM:
+0x121f1e1f, 0x0, 0x3, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a
+0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+usw
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff, 0xffff7fff, 0xffffffff, 0xffff0000
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff, 0xffff7fff, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+swl $t0, 3($t0)
+swr $t0, 0($t0)
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0xe604
+MEM:
+0xe604, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0x10704
+MEM:
+0xe680, 0x10704, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0xe704
+MEM:
+0xe680, 0x10700, 0xe704, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x48aedd0, out: 0xd000b004
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xd000b004
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0xb05f2a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0xb05f2a, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee7ff, out: 0xff00b62a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xff00b62a, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaeffff, out: 0xff00be2a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xff00be2a, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0xde04
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde04
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0xdf2a
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf2a, 0x2ab05fe0, 0xdfd0, 0x10300
--- /dev/null
+sb
+sb $t0, 3($t1) :: RTval: 0x0, out: 0x0
+sb $t0, 3($t1) :: RTval: 0x0, out: 0x0
+sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x27
+sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x3000027
+sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0xff
+sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0x3ff
+sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x1f00
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27000000
+sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27000000
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff
+sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x3ffff
+sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xff
+sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff
+sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27
+sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f
+sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71
+sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71
+sb $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sb $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sb $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sb $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff
+sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff
+sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0x343f3eff
+sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff
+sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0x353d3cff
+sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x27
+sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x3a363a27
+sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0xff
+sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0x3b3a36ff
+sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x0
+sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x453b3700
+sb $t0, 51($t1) :: RTval: 0x28f, out: 0x8f
+sb $t0, 51($t1) :: RTval: 0x28f, out: 0x464d468f
+MEM1:
+0xff0035, 0xffff2700, 0xff0000ff, 0x0
+0x0, 0x0, 0x0, 0xff000000
+0xffffffff, 0x0, 0xff2700, 0x0
+0x8f000000, 0x0, 0x0, 0x0
+MEM:
+0xff0035, 0xffff2700, 0xff0000ff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0xff2d2d2a
+0xff343f3e, 0x3e353d3c, 0x36ff273b, 0x3b37003a
+0x8f4f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+sh
+sh $t0, 1($t1) :: RTval: 0x0, out: 0x0
+sh $t0, 1($t1) :: RTval: 0x0, out: 0x120000
+sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x5927
+sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x5927
+sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x300ffff
+sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 9($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 9($t1) :: RTval: 0x80000000, out: 0xff000000
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x27005927
+sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x27005927
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x27000000
+sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x27000000
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x2700028f
+sh $t0, 0($t1) :: RTval: 0x28f, out: 0x2700028f
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x2700fd71
+sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x2700fd71
+sh $t0, 0($t1) :: RTval: 0xf, out: 0x2700000f
+sh $t0, 0($t1) :: RTval: 0xf, out: 0x2700000f
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x27000001
+sh $t0, 0($t1) :: RTval: 0x1, out: 0x27000001
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x27000035
+sh $t0, 0($t1) :: RTval: 0x35, out: 0x27000035
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff
+sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff
+sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0x343fffff
+sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0xffff
+sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0x353dffff
+sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x5927
+sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x3a365927
+sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xffff
+sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0x4f4effff
+sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x0
+sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x46450000
+sh $t0, 51($t1) :: RTval: 0x28f, out: 0x28f
+sh $t0, 51($t1) :: RTval: 0x28f, out: 0x464d028f
+MEM1:
+0xffff0035, 0xffffff59, 0xff00ffff, 0xff
+0x0, 0x0, 0x0, 0xff000000
+0xff0000ff, 0xff, 0x592700, 0xff000000
+0x8f0000ff, 0x2, 0x0, 0x0
+MEM:
+0xffff0035, 0xffffff59, 0xff00ffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0xff2d2d2a
+0xff343fff, 0x3e353dff, 0x3659273b, 0xff373b3a
+0x8f0000ff, 0x4e464d02, 0x474d474c, 0x4a484a4c
+sw
+sw $t0, 1($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 1($t1) :: RTval: 0x0, out: 0x0
+sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0x8000
+sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0xffff8000
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff
+sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927
+sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000
+sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f
+sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff0035, 0xffffffff, 0xffffffff, 0xff000080
+0x7fffff, 0x0, 0x0, 0xff000000
+0xffffff, 0xffffff00, 0xffffff, 0x800000
+0x8f592700, 0x2, 0x0, 0x0
+MEM:
+0xffff0035, 0xffffffff, 0xffffffff, 0xffffff80
+0x237fffff, 0x242c2b2b, 0x252a2e2b, 0xff2d2d2a
+0x3fffffff, 0xffffff3c, 0xffffff, 0x3b800000
+0x8f592745, 0x4e000002, 0x474d474c, 0x4a484a4c
+swl
+swl $t0, 1($t1) :: RTval: 0x0, out: 0x0
+swl $t0, 1($t1) :: RTval: 0x0, out: 0x121f00
+swl $t0, 3($t1) :: RTval: 0x31415927, out: 0x31
+swl $t0, 3($t1) :: RTval: 0x31415927, out: 0x31
+swl $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7f
+swl $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x300007f
+swl $t0, 7($t1) :: RTval: 0x80000000, out: 0x80
+swl $t0, 7($t1) :: RTval: 0x80000000, out: 0x380
+swl $t0, 9($t1) :: RTval: 0x80000000, out: 0x80
+swl $t0, 9($t1) :: RTval: 0x80000000, out: 0xff000080
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x8000807f
+swl $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x8000807f
+swl $t0, 11($t1) :: RTval: 0x7fffffff, out: 0x7f
+swl $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffff7f
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0x7fffffff
+swl $t0, 8($t1) :: RTval: 0xffffffff, out: 0x7fffffff
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415931
+swl $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415931
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0x3141590d
+swl $t0, 0($t1) :: RTval: 0xdd00000, out: 0x3141590d
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x31415900
+swl $t0, 0($t1) :: RTval: 0x28f, out: 0x31415900
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x314159ff
+swl $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x314159ff
+swl $t0, 0($t1) :: RTval: 0xf, out: 0x31415900
+swl $t0, 0($t1) :: RTval: 0xf, out: 0x31415900
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x31415900
+swl $t0, 0($t1) :: RTval: 0x1, out: 0x31415900
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x31415900
+swl $t0, 0($t1) :: RTval: 0x35, out: 0x31415900
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff31ff
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff31ff
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff31ff
+swl $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff31ff
+swl $t0, 33($t1) :: RTval: 0xffffffff, out: 0xff
+swl $t0, 33($t1) :: RTval: 0xffffffff, out: 0x3c3f34ff
+swl $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff
+swl $t0, 35($t1) :: RTval: 0xffffffff, out: 0x353d3cff
+swl $t0, 41($t1) :: RTval: 0x31415927, out: 0x31
+swl $t0, 41($t1) :: RTval: 0x31415927, out: 0x3a363a31
+swl $t0, 45($t1) :: RTval: 0x7fffffff, out: 0x7f
+swl $t0, 45($t1) :: RTval: 0x7fffffff, out: 0x453b377f
+swl $t0, 49($t1) :: RTval: 0x80000000, out: 0x80
+swl $t0, 49($t1) :: RTval: 0x80000000, out: 0x46454f80
+swl $t0, 51($t1) :: RTval: 0x28f, out: 0x0
+swl $t0, 51($t1) :: RTval: 0x28f, out: 0x464d4600
+MEM1:
+0x31ffffff, 0x807fffff, 0x7fffffff, 0x0
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0x0, 0x3141, 0x7fff
+0x28f, 0x0, 0x0, 0x0
+MEM:
+0x31ffffff, 0x807fffff, 0x7fffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0x3e353d3c, 0x363a3141, 0x3b377fff
+0x28f, 0x4e464d46, 0x474d474c, 0x4a484a4c
+swr
+swr $t0, 1($t1) :: RTval: 0x0, out: 0x0
+swr $t0, 1($t1) :: RTval: 0x0, out: 0x0
+swr $t0, 3($t1) :: RTval: 0x31415927, out: 0x27
+swr $t0, 3($t1) :: RTval: 0x31415927, out: 0x27
+swr $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xffffff
+swr $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x3ffffff
+swr $t0, 7($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 7($t1) :: RTval: 0x80000000, out: 0x300
+swr $t0, 9($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 9($t1) :: RTval: 0x80000000, out: 0xff000000
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff
+swr $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x3ffff
+swr $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xff
+swr $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swr $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swr $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swr $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swr $t0, 0($t1) :: RTval: 0xf, out: 0xf
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swr $t0, 0($t1) :: RTval: 0x1, out: 0x1
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swr $t0, 0($t1) :: RTval: 0x35, out: 0x35
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+swr $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff00ffff
+swr $t0, 31($t1) :: RTval: 0xffffffff, out: 0xff
+swr $t0, 31($t1) :: RTval: 0xffffffff, out: 0x343f3eff
+swr $t0, 33($t1) :: RTval: 0xffffffff, out: 0xffffff
+swr $t0, 33($t1) :: RTval: 0xffffffff, out: 0x3cffffff
+swr $t0, 45($t1) :: RTval: 0x31415927, out: 0x415927
+swr $t0, 45($t1) :: RTval: 0x31415927, out: 0x45415927
+swr $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xff
+swr $t0, 47($t1) :: RTval: 0x7fffffff, out: 0x4f4e45ff
+swr $t0, 49($t1) :: RTval: 0x80000000, out: 0x0
+swr $t0, 49($t1) :: RTval: 0x80000000, out: 0x46000000
+swr $t0, 51($t1) :: RTval: 0x28f, out: 0x8f
+swr $t0, 51($t1) :: RTval: 0x28f, out: 0x464d468f
+MEM1:
+0xffff0035, 0xffffff00, 0xffffffff, 0x0
+0x0, 0x0, 0x0, 0xff000000
+0xffffff00, 0x0, 0x0, 0xff592700
+0x8f000000, 0x0, 0x0, 0x0
+MEM:
+0xffff0035, 0xffffff00, 0xffffffff, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0xff2d2d2a
+0xffffff3e, 0x3e353d3c, 0x363a3c3b, 0xff59273a
+0x8f000045, 0x4e464d46, 0x474d474c, 0x4a484a4c
+ulw
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x0, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0x80000000, out: 0x121f
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x30000
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff0000
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 8($t1) :: RTval: 0xffffffff, out: 0x3
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xdd00000, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x28f, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0xf, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x1, out: 0x121f1e1f
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x0
+ulw $t0, 0($t1) :: RTval: 0x35, out: 0x121f1e1f
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x121f
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 2($t1) :: RTval: 0xffffffff, out: 0x121f
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f343f3e
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x0
+ulw $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e353d3c
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x0
+ulw $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a3c3b
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x0
+ulw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b373b3a
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x0
+ulw $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f4e45
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x0
+ulw $t0, 52($t1) :: RTval: 0x28f, out: 0x4e464d46
+MEM1:
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+0x0, 0x0, 0x0, 0x0
+MEM:
+0x121f1e1f, 0x0, 0x3, 0xffffffff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a
+0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+usw
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x0, out: 0x0
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0xf, out: 0xf
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x1, out: 0x1
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 0($t1) :: RTval: 0x35, out: 0x35
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+usw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f
+MEM1:
+0xffff0035, 0xffffffff, 0xffffffff, 0x7fff
+0x0, 0x0, 0x0, 0x0
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x0, 0x0
+MEM:
+0xffff0035, 0xffffffff, 0xffffffff, 0xffff7fff
+0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a
+0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff
+0x80000000, 0x28f, 0x474d474c, 0x4a484a4c
+swl $t0, 3($t0)
+swr $t0, 0($t0)
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0x4853000
+MEM:
+0x4853000, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4853000, out: 0x4853000
+MEM:
+0xe680, 0x4853000, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0x4863700
+MEM:
+0xe680, 0x10700, 0x4863700, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x48aedd0, out: 0x48aedd0
+MEM:
+0xe680, 0x10700, 0xe7dc, 0x48aedd0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0x2aaee700
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2aaee700, 0xb6a0, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee7ff, out: 0x2aaee7ff
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0x2aaee7ff, 0xbe80, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaeffff, out: 0x2aaeffff
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0x2aaeffff, 0xde10
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x4863700, out: 0x4863700
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0x4863700
+0xdf20, 0x2ab05fe0, 0xdfd0, 0x10300
+swl $t0, 3($t1)
+swr $t0, 0($t1)
+ :: RTval: 0x2aaee700, out: 0x2aaee700
+MEM:
+0xe680, 0x10700, 0xe7dc, 0xb0d0
+0x2ab05fd0, 0xb6a0, 0xbe80, 0xde10
+0x2aaee700, 0x2ab05fe0, 0xdfd0, 0x10300
--- /dev/null
+prog: LoadStore1
+vgopts: -q
--- /dev/null
+#include <stdio.h>
+
+#define TESTINST1(instruction, RSval, RTval, RD, RS, RT) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "li $" #RD ", 0\n\t" \
+ "move $" #RS ", %1\n\t" \
+ "move $" #RT ", %2\n\t" \
+ instruction "\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RTval) \
+ : #RD, #RS, #RT, "cc", "memory" \
+ ); \
+ printf("%s :: rd 0x%08x rs 0x%08x, rt 0x%08x\n", \
+ instruction, out, RSval, RTval); \
+}
+
+#define TESTINST2(instruction, RSval, imm, RT, RS) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $" #RS ", %1\n\t" \
+ instruction "\n\t" \
+ "move %0, $" #RT "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval) \
+ : #RT, #RS, "cc", "memory" \
+ ); \
+ printf("%s :: rt 0x%08x rs 0x%08x, imm 0x%08x\n", \
+ instruction, out, RSval, imm); \
+}
+
+#define TESTINST3(instruction, RSval, RD, RS) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $" #RS ", %1\n\t" \
+ instruction "\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval) \
+ : #RD, #RS, "cc", "memory" \
+ ); \
+ printf("%s :: rd 0x%08x rs 0x%08x\n", \
+ instruction, out, RSval); \
+}
+
+#define TESTINST3a(instruction, RSval, RTval, RS, RT) \
+{ \
+ unsigned int HI; \
+ unsigned int LO; \
+ __asm__ volatile( \
+ "li $" #RS ", 0x0\n\t" \
+ "mthi $" #RS"\n\t" \
+ "mtlo $" #RS"\n\t" \
+ "move $" #RS ", %2\n\t" \
+ "move $" #RT ", %3\n\t" \
+ instruction "\n\t" \
+ "mfhi %0 \n\t" \
+ "mflo %1 \n\t" \
+ : "=&r" (HI), "=&r" (LO) \
+ : "r" (RSval), "r"(RTval) \
+ : #RS, #RT, "cc", "memory" \
+ ); \
+ printf("%s :: rs 0x%08x rt 0x%08x HI 0x%08x LO 0x%08x \n", \
+ instruction, RSval, RTval, HI, LO); \
+}
+
+#define TESTINST4(instruction, RTval, RSval, RT, RS, pos, size) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $" #RT ", %1\n\t" \
+ "move $" #RS ", %2\n\t" \
+ instruction "\n\t" \
+ "move %0, $" #RT "\n\t" \
+ : "=&r" (out) \
+ : "r" (RTval), "r" (RSval) \
+ : #RT, #RS, "cc", "memory" \
+ ); \
+ printf("%s :: rt 0x%08x rs 0x%08x, pos 0x%08x, size 0x%08x\n", \
+ instruction, out, RSval, pos, size); \
+}
+
+const unsigned int mem[] = {
+ 0x121f1e1f, 0, 3, -1,
+ 0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a,
+ 0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a,
+ 0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+};
+
+// load $t0, 0($t1)
+#define TESTINSN5LOAD(instruction, RTval, offset, RT) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $t1, %1\n\t" \
+ "li $t0, " #RTval"\n\t" \
+ instruction "\n\t" \
+ "move %0, $" #RT "\n\t" \
+ : "=&r" (out) \
+ : "r" (mem), "r" (RTval) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: rt 0x%08x\n", \
+ instruction, out); \
+}
+
+#define TESTINSN_HILO(RSval) \
+{ \
+ unsigned int HI; \
+ unsigned int LO; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "mthi $t0\n\t" \
+ "addiu $t0, $t0, 0xffff\n\t" \
+ "mtlo $t0\n\t" \
+ "mfhi %0\n\t" \
+ "mflo %1\n\t" \
+ : "=&r" (HI), "=&r" (LO) \
+ : "r" (RSval)\
+ : "cc", "memory" \
+ ); \
+ printf("mfhi mflo :: HI: 0x%x, LO: 0x%x\n", \
+ HI, LO); \
+}
+
+int main(int argc, char **argv)
+{
+ printf("ADD\n");
+ TESTINST1("add $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 1, 1, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 1, -1, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("add $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+
+ printf("ADDI\n");
+ TESTINST2("addi $t0, $t1, 0", 0, 0, t0, t1);
+ TESTINST2("addi $t0, $t1, 1", 0, 1, t0, t1);
+ TESTINST2("addi $t0, $t1, 1", 1, 0, t0, t1);
+ TESTINST2("addi $t0, $t1, 1", 1, 1, t0, t1);
+ TESTINST2("addi $t0, $t1, -1", 0, -1, t0, t1);
+ TESTINST2("addi $t0, $t1, -1", 1, -1, t0, t1);
+ TESTINST2("addi $t0, $t1, 0", 0x80000000, 0, t0, t1);
+ TESTINST2("addi $t0, $t1, 0", -1, 0, t0, t1);
+ TESTINST2("addi $t0, $t1, 0", 0x80000000, 0, t0, t1);
+
+ printf("ADDIU\n");
+ TESTINST2("addiu $t0, $t1, 0", 0, 0, t0, t1);
+ TESTINST2("addiu $t0, $t1, 1", 0, 1, t0, t1);
+ TESTINST2("addiu $t0, $t1, 1", 1, 0, t0, t1);
+ TESTINST2("addiu $t0, $t1, 1", 1, 1, t0, t1);
+ TESTINST2("addiu $t0, $t1, -1", 0, -1, t0, t1);
+ TESTINST2("addiu $t0, $t1, -1", 1, -1, t0, t1);
+ TESTINST2("addiu $t0, $t1, 0", 0x80000000, 0, t0, t1);
+ TESTINST2("addiu $t0, $t1, 0", -1, 0, t0, t1);
+ TESTINST2("addiu $t0, $t1, 0", 0x80000000, 0, t0, t1);
+
+ printf("ADDU\n");
+ TESTINST1("addu $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 1, 1, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 1, -1, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0x7fffffff, t0, t1, t2);
+ TESTINST1("addu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+
+ printf("AND\n");
+ TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+
+ printf("ANDI\n");
+ TESTINST2("andi $t0, $t1, 1", 0, 1, t0, t1);
+ TESTINST2("andi $t0, $t1, 0", 1, 0, t0, t1);
+ TESTINST2("andi $t0, $t1, 1", 1, 1, t0, t1);
+ TESTINST2("andi $t0, $t1, 1", 0x7fffffff, 0, t0, t1);
+ TESTINST2("andi $t0, $t1, 0", 0x80000000, 0, t0, t1);
+ TESTINST2("andi $t0, $t1, 0x3145", 0xffffffff, 0x3145, t0, t1);
+
+ printf("CLO\n");
+ TESTINST3("clo $t0, $t1", 0, t0, t1);
+ TESTINST3("clo $t0, $t1", 1, t0, t1);
+ TESTINST3("clo $t0, $t1", 0x10, t0, t1);
+ TESTINST3("clo $t0, $t1", 0xffffffff, t0, t1);
+
+ printf("CLZ\n");
+ TESTINST3("clz $t0, $t1", 0, t0, t1);
+ TESTINST3("clz $t0, $t1", 1, t0, t1);
+ TESTINST3("clz $t0, $t1", 0x10, t0, t1);
+ TESTINST3("clz $t0, $t1", 0xffffffff, t0, t1);
+
+ printf("DIV\n");
+ TESTINST3a("div $t0, $t1", 0x6, 0x2, t0, t1);
+ TESTINST3a("div $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("div $t0, $t1", 0xffffffff, 0x1, t0, t1);
+ TESTINST3a("div $t0, $t1", 0x1, 0xffffffff, t0, t1);
+ TESTINST3a("div $t0, $t1", 0x2, 0x6, t0, t1);
+
+ printf("DIVU\n");
+ TESTINST3a("divu $t0, $t1", 0x6, 0x2, t0, t1);
+ TESTINST3a("divu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("divu $t0, $t1", 0xffffffff, 0x1, t0, t1);
+ TESTINST3a("divu $t0, $t1", 0x1, 0xffffffff, t0, t1);
+ TESTINST3a("divu $t0, $t1", 0x2, 0x6, t0, t1);
+ TESTINST3a("divu $t0, $t1", 0x0, 0x2, t0, t1);
+
+ printf("EXT\n");
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0xffffffff, t0, t1, 2, 6);
+ TESTINST4("ext $t0, $t1, 2, 6", 0xffffffff, 0xffffffff, t0, t1, 2, 6);
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0xffffffff, t0, t1, 31, 6);
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0, t0, t1, 32, 32);
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0xffff, t0, t1, 31, 0);
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0xff, t0, t1, 31, 0)
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0xf0000000, t0, t1, 31, 0)
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0xf0000000, t0, t1, 0, 31)
+ TESTINST4("ext $t0, $t1, 2, 6", 0, 0x31415927, t0, t1, 3, 25)
+
+ printf("INS\n");
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0xffffffff, t0, t1, 2, 6);
+ TESTINST4("ins $t0, $t1, 2, 6", 0xffffffff, 0xffffffff, t0, t1, 2, 6);
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0xffffffff, t0, t1, 31, 6);
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0, t0, t1, 32, 32);
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0xffff, t0, t1, 31, 0);
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0xff, t0, t1, 31, 0)
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0xf0000000, t0, t1, 31, 0)
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0xf0000000, t0, t1, 0, 31)
+ TESTINST4("ins $t0, $t1, 2, 6", 0, 0x31415927, t0, t1, 3, 25)
+
+ printf("LB\n");
+ TESTINSN5LOAD("lb $t0, 0($t1)", 0, 0, t0);
+ TESTINSN5LOAD("lb $t0, 4($t1)", 0, 4, t0);
+ TESTINSN5LOAD("lb $t0, 8($t1)", 0, 8, t0);
+ TESTINSN5LOAD("lb $t0, 12($t1)", 0, 12, t0);
+ TESTINSN5LOAD("lb $t0, 16($t1)", 0, 16, t0);
+ TESTINSN5LOAD("lb $t0, 20($t1)", 0, 20, t0);
+ TESTINSN5LOAD("lb $t0, 24($t1)", 0, 24, t0);
+ TESTINSN5LOAD("lb $t0, 28($t1)", 0, 28, t0);
+ TESTINSN5LOAD("lb $t0, 32($t1)", 0, 32, t0);
+ TESTINSN5LOAD("lb $t0, 36($t1)", 0, 36, t0);
+ TESTINSN5LOAD("lb $t0, 40($t1)", 0, 40, t0);
+ TESTINSN5LOAD("lb $t0, 44($t1)", 0, 44, t0);
+ TESTINSN5LOAD("lb $t0, 48($t1)", 0, 48, t0);
+ TESTINSN5LOAD("lb $t0, 52($t1)", 0, 52, t0);
+ TESTINSN5LOAD("lb $t0, 56($t1)", 0, 56, t0);
+ TESTINSN5LOAD("lb $t0, 60($t1)", 0, 60, t0);
+ TESTINSN5LOAD("lb $t0, 64($t1)", 0, 64, t0);
+ TESTINSN5LOAD("lb $t0, 2($t1)", 0, 2, t0);
+ TESTINSN5LOAD("lb $t0, 6($t1)", 0, 6, t0);
+ TESTINSN5LOAD("lb $t0, 10($t1)", 0, 10, t0);
+ TESTINSN5LOAD("lb $t0, 14($t1)", 0, 14, t0);
+ TESTINSN5LOAD("lb $t0, 18($t1)", 0, 18, t0);
+ TESTINSN5LOAD("lb $t0, 22($t1)", 0, 22, t0);
+ TESTINSN5LOAD("lb $t0, 26($t1)", 0, 26, t0);
+ TESTINSN5LOAD("lb $t0, 30($t1)", 0, 30, t0);
+ TESTINSN5LOAD("lb $t0, 34($t1)", 0, 34, t0);
+ TESTINSN5LOAD("lb $t0, 38($t1)", 0, 38, t0);
+
+ printf("LBU\n");
+ TESTINSN5LOAD("lbu $t0, 0($t1)", 0, 0, t0);
+ TESTINSN5LOAD("lbu $t0, 4($t1)", 0, 4, t0);
+ TESTINSN5LOAD("lbu $t0, 8($t1)", 0, 8, t0);
+ TESTINSN5LOAD("lbu $t0, 12($t1)", 0, 12, t0);
+ TESTINSN5LOAD("lbu $t0, 16($t1)", 0, 16, t0);
+ TESTINSN5LOAD("lbu $t0, 20($t1)", 0, 20, t0);
+ TESTINSN5LOAD("lbu $t0, 24($t1)", 0, 24, t0);
+ TESTINSN5LOAD("lbu $t0, 28($t1)", 0, 28, t0);
+ TESTINSN5LOAD("lbu $t0, 32($t1)", 0, 32, t0);
+ TESTINSN5LOAD("lbu $t0, 36($t1)", 0, 36, t0);
+ TESTINSN5LOAD("lbu $t0, 40($t1)", 0, 40, t0);
+ TESTINSN5LOAD("lbu $t0, 44($t1)", 0, 44, t0);
+ TESTINSN5LOAD("lbu $t0, 48($t1)", 0, 48, t0);
+ TESTINSN5LOAD("lbu $t0, 52($t1)", 0, 52, t0);
+ TESTINSN5LOAD("lbu $t0, 56($t1)", 0, 56, t0);
+ TESTINSN5LOAD("lbu $t0, 60($t1)", 0, 60, t0);
+ TESTINSN5LOAD("lbu $t0, 64($t1)", 0, 64, t0);
+ TESTINSN5LOAD("lbu $t0, 2($t1)", 0, 2, t0);
+ TESTINSN5LOAD("lbu $t0, 6($t1)", 0, 6, t0);
+ TESTINSN5LOAD("lbu $t0, 10($t1)", 0, 10, t0);
+ TESTINSN5LOAD("lbu $t0, 14($t1)", 0, 14, t0);
+ TESTINSN5LOAD("lbu $t0, 18($t1)", 0, 18, t0);
+ TESTINSN5LOAD("lbu $t0, 22($t1)", 0, 22, t0);
+ TESTINSN5LOAD("lbu $t0, 26($t1)", 0, 26, t0);
+ TESTINSN5LOAD("lbu $t0, 30($t1)", 0, 30, t0);
+ TESTINSN5LOAD("lbu $t0, 34($t1)", 0, 34, t0);
+ TESTINSN5LOAD("lbu $t0, 38($t1)", 0, 38, t0);
+
+ printf("LH\n");
+ TESTINSN5LOAD("lh $t0, 0($t1)", 0, 0, t0);
+ TESTINSN5LOAD("lh $t0, 4($t1)", 0, 4, t0);
+ TESTINSN5LOAD("lh $t0, 8($t1)", 0, 8, t0);
+ TESTINSN5LOAD("lh $t0, 12($t1)", 0, 12, t0);
+ TESTINSN5LOAD("lh $t0, 16($t1)", 0, 16, t0);
+ TESTINSN5LOAD("lh $t0, 20($t1)", 0, 20, t0);
+ TESTINSN5LOAD("lh $t0, 24($t1)", 0, 24, t0);
+ TESTINSN5LOAD("lh $t0, 28($t1)", 0, 28, t0);
+ TESTINSN5LOAD("lh $t0, 32($t1)", 0, 32, t0);
+ TESTINSN5LOAD("lh $t0, 36($t1)", 0, 36, t0);
+ TESTINSN5LOAD("lh $t0, 40($t1)", 0, 40, t0);
+ TESTINSN5LOAD("lh $t0, 44($t1)", 0, 44, t0);
+ TESTINSN5LOAD("lh $t0, 48($t1)", 0, 48, t0);
+ TESTINSN5LOAD("lh $t0, 52($t1)", 0, 52, t0);
+ TESTINSN5LOAD("lh $t0, 56($t1)", 0, 56, t0);
+ TESTINSN5LOAD("lh $t0, 60($t1)", 0, 60, t0);
+ TESTINSN5LOAD("lh $t0, 64($t1)", 0, 64, t0);
+ TESTINSN5LOAD("lh $t0, 2($t1)", 0, 2, t0);
+ TESTINSN5LOAD("lh $t0, 6($t1)", 0, 6, t0);
+ TESTINSN5LOAD("lh $t0, 10($t1)", 0, 10, t0);
+ TESTINSN5LOAD("lh $t0, 14($t1)", 0, 14, t0);
+ TESTINSN5LOAD("lh $t0, 18($t1)", 0, 18, t0);
+ TESTINSN5LOAD("lh $t0, 22($t1)", 0, 22, t0);
+ TESTINSN5LOAD("lh $t0, 26($t1)", 0, 26, t0);
+ TESTINSN5LOAD("lh $t0, 30($t1)", 0, 30, t0);
+ TESTINSN5LOAD("lh $t0, 34($t1)", 0, 34, t0);
+ TESTINSN5LOAD("lh $t0, 38($t1)", 0, 38, t0);
+
+ printf("LHU\n");
+ TESTINSN5LOAD("lhu $t0, 0($t1)", 0, 0, t0);
+ TESTINSN5LOAD("lhu $t0, 4($t1)", 0, 4, t0);
+ TESTINSN5LOAD("lhu $t0, 8($t1)", 0, 8, t0);
+ TESTINSN5LOAD("lhu $t0, 12($t1)", 0, 12, t0);
+ TESTINSN5LOAD("lhu $t0, 16($t1)", 0, 16, t0);
+ TESTINSN5LOAD("lhu $t0, 20($t1)", 0, 20, t0);
+ TESTINSN5LOAD("lhu $t0, 24($t1)", 0, 24, t0);
+ TESTINSN5LOAD("lhu $t0, 28($t1)", 0, 28, t0);
+ TESTINSN5LOAD("lhu $t0, 32($t1)", 0, 32, t0);
+ TESTINSN5LOAD("lhu $t0, 36($t1)", 0, 36, t0);
+ TESTINSN5LOAD("lhu $t0, 40($t1)", 0, 40, t0);
+ TESTINSN5LOAD("lhu $t0, 44($t1)", 0, 44, t0);
+ TESTINSN5LOAD("lhu $t0, 48($t1)", 0, 48, t0);
+ TESTINSN5LOAD("lhu $t0, 52($t1)", 0, 52, t0);
+ TESTINSN5LOAD("lhu $t0, 56($t1)", 0, 56, t0);
+ TESTINSN5LOAD("lhu $t0, 60($t1)", 0, 60, t0);
+ TESTINSN5LOAD("lhu $t0, 64($t1)", 0, 64, t0);
+ TESTINSN5LOAD("lhu $t0, 2($t1)", 0, 2, t0);
+ TESTINSN5LOAD("lhu $t0, 6($t1)", 0, 6, t0);
+ TESTINSN5LOAD("lhu $t0, 10($t1)", 0, 10, t0);
+ TESTINSN5LOAD("lhu $t0, 14($t1)", 0, 14, t0);
+ TESTINSN5LOAD("lhu $t0, 18($t1)", 0, 18, t0);
+ TESTINSN5LOAD("lhu $t0, 22($t1)", 0, 22, t0);
+ TESTINSN5LOAD("lhu $t0, 26($t1)", 0, 26, t0);
+ TESTINSN5LOAD("lhu $t0, 30($t1)", 0, 30, t0);
+ TESTINSN5LOAD("lhu $t0, 34($t1)", 0, 34, t0);
+ TESTINSN5LOAD("lhu $t0, 38($t1)", 0, 38, t0);
+
+ printf("LUI\n");
+ TESTINST3("lui $t0, 0xffff", 0xffff, t0, t1);
+ TESTINST3("lui $t0, 0xff00", 0xff00, t0, t1);
+ TESTINST3("lui $t0, 0xff", 0xff, t0, t1);
+ TESTINST3("lui $t0, 0x0", 0x0, t0, t1);
+ TESTINST3("lui $t0, 0x5", 0x5, t0, t1);
+ TESTINST3("lui $t0, 0x387", 0x387, t0, t1);
+
+ printf("LW\n");
+ TESTINSN5LOAD("lw $t0, 0($t1)", 0, 0, t0);
+ TESTINSN5LOAD("lw $t0, 4($t1)", 0, 4, t0);
+ TESTINSN5LOAD("lw $t0, 8($t1)", 0, 8, t0);
+ TESTINSN5LOAD("lw $t0, 12($t1)", 0, 12, t0);
+ TESTINSN5LOAD("lw $t0, 16($t1)", 0, 16, t0);
+ TESTINSN5LOAD("lw $t0, 20($t1)", 0, 20, t0);
+ TESTINSN5LOAD("lw $t0, 24($t1)", 0, 24, t0);
+ TESTINSN5LOAD("lw $t0, 28($t1)", 0, 28, t0);
+ TESTINSN5LOAD("lw $t0, 32($t1)", 0, 32, t0);
+ TESTINSN5LOAD("lw $t0, 36($t1)", 0, 36, t0);
+ TESTINSN5LOAD("lw $t0, 40($t1)", 0, 40, t0);
+ TESTINSN5LOAD("lw $t0, 44($t1)", 0, 44, t0);
+ TESTINSN5LOAD("lw $t0, 48($t1)", 0, 48, t0);
+ TESTINSN5LOAD("lw $t0, 52($t1)", 0, 52, t0);
+ TESTINSN5LOAD("lw $t0, 56($t1)", 0, 56, t0);
+ TESTINSN5LOAD("lw $t0, 60($t1)", 0, 60, t0);
+ TESTINSN5LOAD("lw $t0, 64($t1)", 0, 64, t0);
+ TESTINSN5LOAD("lw $t0, 2($t1)", 0, 2, t0);
+ TESTINSN5LOAD("lw $t0, 6($t1)", 0, 6, t0);
+ TESTINSN5LOAD("lw $t0, 10($t1)", 0, 10, t0);
+ TESTINSN5LOAD("lw $t0, 14($t1)", 0, 14, t0);
+ TESTINSN5LOAD("lw $t0, 18($t1)", 0, 18, t0);
+ TESTINSN5LOAD("lw $t0, 22($t1)", 0, 22, t0);
+ TESTINSN5LOAD("lw $t0, 26($t1)", 0, 26, t0);
+ TESTINSN5LOAD("lw $t0, 30($t1)", 0, 30, t0);
+ TESTINSN5LOAD("lw $t0, 34($t1)", 0, 34, t0);
+ TESTINSN5LOAD("lw $t0, 38($t1)", 0, 38, t0);
+
+ printf("LWL\n");
+ TESTINSN5LOAD("lwl $t0, 0($t1)", 0, 0, t0);
+ TESTINSN5LOAD("lwl $t0, 4($t1)", 0, 4, t0);
+ TESTINSN5LOAD("lwl $t0, 8($t1)", 0, 8, t0);
+ TESTINSN5LOAD("lwl $t0, 12($t1)", 0, 12, t0);
+ TESTINSN5LOAD("lwl $t0, 16($t1)", 0, 16, t0);
+ TESTINSN5LOAD("lwl $t0, 20($t1)", 0, 20, t0);
+ TESTINSN5LOAD("lwl $t0, 24($t1)", 0, 24, t0);
+ TESTINSN5LOAD("lwl $t0, 28($t1)", 0, 28, t0);
+ TESTINSN5LOAD("lwl $t0, 32($t1)", 0, 32, t0);
+ TESTINSN5LOAD("lwl $t0, 36($t1)", 0, 36, t0);
+ TESTINSN5LOAD("lwl $t0, 40($t1)", 0, 40, t0);
+ TESTINSN5LOAD("lwl $t0, 44($t1)", 0, 44, t0);
+ TESTINSN5LOAD("lwl $t0, 48($t1)", 0, 48, t0);
+ TESTINSN5LOAD("lwl $t0, 52($t1)", 0, 52, t0);
+ TESTINSN5LOAD("lwl $t0, 56($t1)", 0, 56, t0);
+ TESTINSN5LOAD("lwl $t0, 60($t1)", 0, 60, t0);
+ TESTINSN5LOAD("lwl $t0, 64($t1)", 0, 64, t0);
+ TESTINSN5LOAD("lwl $t0, 2($t1)", 0, 2, t0);
+ TESTINSN5LOAD("lwl $t0, 6($t1)", 0, 6, t0);
+ TESTINSN5LOAD("lwl $t0, 10($t1)", 0, 10, t0);
+ TESTINSN5LOAD("lwl $t0, 14($t1)", 0, 14, t0);
+ TESTINSN5LOAD("lwl $t0, 18($t1)", 0, 18, t0);
+ TESTINSN5LOAD("lwl $t0, 22($t1)", 0, 22, t0);
+ TESTINSN5LOAD("lwl $t0, 26($t1)", 0, 26, t0);
+ TESTINSN5LOAD("lwl $t0, 30($t1)", 0, 30, t0);
+ TESTINSN5LOAD("lwl $t0, 34($t1)", 0, 34, t0);
+ TESTINSN5LOAD("lwl $t0, 38($t1)", 0, 38, t0);
+
+ printf("LWR\n");
+ TESTINSN5LOAD("lwr $t0, 0($t1)", 0, 0, t0);
+ TESTINSN5LOAD("lwr $t0, 4($t1)", 0, 4, t0);
+ TESTINSN5LOAD("lwr $t0, 8($t1)", 0, 8, t0);
+ TESTINSN5LOAD("lwr $t0, 12($t1)", 0, 12, t0);
+ TESTINSN5LOAD("lwr $t0, 16($t1)", 0, 16, t0);
+ TESTINSN5LOAD("lwr $t0, 20($t1)", 0, 20, t0);
+ TESTINSN5LOAD("lwr $t0, 24($t1)", 0, 24, t0);
+ TESTINSN5LOAD("lwr $t0, 28($t1)", 0, 28, t0);
+ TESTINSN5LOAD("lwr $t0, 32($t1)", 0, 32, t0);
+ TESTINSN5LOAD("lwr $t0, 36($t1)", 0, 36, t0);
+ TESTINSN5LOAD("lwr $t0, 40($t1)", 0, 40, t0);
+ TESTINSN5LOAD("lwr $t0, 44($t1)", 0, 44, t0);
+ TESTINSN5LOAD("lwr $t0, 48($t1)", 0, 48, t0);
+ TESTINSN5LOAD("lwr $t0, 52($t1)", 0, 52, t0);
+ TESTINSN5LOAD("lwr $t0, 56($t1)", 0, 56, t0);
+ TESTINSN5LOAD("lwr $t0, 60($t1)", 0, 60, t0);
+ TESTINSN5LOAD("lwr $t0, 64($t1)", 0, 64, t0);
+ TESTINSN5LOAD("lwr $t0, 2($t1)", 0, 2, t0);
+ TESTINSN5LOAD("lwr $t0, 6($t1)", 0, 6, t0);
+ TESTINSN5LOAD("lwr $t0, 10($t1)", 0, 10, t0);
+ TESTINSN5LOAD("lwr $t0, 14($t1)", 0, 14, t0);
+ TESTINSN5LOAD("lwr $t0, 18($t1)", 0, 18, t0);
+ TESTINSN5LOAD("lwr $t0, 22($t1)", 0, 22, t0);
+ TESTINSN5LOAD("lwr $t0, 26($t1)", 0, 26, t0);
+ TESTINSN5LOAD("lwr $t0, 30($t1)", 0, 30, t0);
+ TESTINSN5LOAD("lwr $t0, 34($t1)", 0, 34, t0);
+ TESTINSN5LOAD("lwr $t0, 38($t1)", 0, 38, t0);
+
+ printf("MADD\n");
+ TESTINST3a("madd $t0, $t1", 0x6, 0x2, t0, t1);
+ TESTINST3a("madd $t0, $t1", 0x55, 0x28, t0, t1);
+ TESTINST3a("madd $t0, $t1", 0x18, 0xfff, t0, t1);
+ TESTINST3a("madd $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("madd $t0, $t1", 0xffffffff, 0x1, t0, t1);
+ TESTINST3a("madd $t0, $t1", 0x1, 0xffffffff, t0, t1);
+ TESTINST3a("madd $t0, $t1", 0x2, 0x6, t0, t1);
+ TESTINST3a("madd $t0, $t1", 0x356, 0x555, t0, t1);
+
+ printf("MADDU\n");
+ TESTINST3a("maddu $t0, $t1", 0x6, 0x2, t0, t1);
+ TESTINST3a("maddu $t0, $t1", 0x55, 0x28, t0, t1);
+ TESTINST3a("maddu $t0, $t1", 0x18, 0xfff, t0, t1);
+ TESTINST3a("maddu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("maddu $t0, $t1", 0xffffffff, 0x1, t0, t1);
+ TESTINST3a("maddu $t0, $t1", 0x1, 0xffffffff, t0, t1);
+ TESTINST3a("maddu $t0, $t1", 0x2, 0x6, t0, t1);
+ TESTINST3a("maddu $t0, $t1", 0x356, 0x555, t0, t1);
+
+ printf("MOVN\n");
+ TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x31415927, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+
+ printf("MOVZ\n");
+ TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x31415927, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1, t0, t1, t2);
+ TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+
+ printf("MSUB\n");
+ TESTINST3a("msub $t0, $t1", 0x6, 0x2, t0, t1);
+ TESTINST3a("msub $t0, $t1", 0x55, 0x28, t0, t1);
+ TESTINST3a("msub $t0, $t1", 0x18, 0xfff, t0, t1);
+ TESTINST3a("msub $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("msub $t0, $t1", 0xffffffff, 0x1, t0, t1);
+ TESTINST3a("msub $t0, $t1", 0x1, 0xffffffff, t0, t1);
+ TESTINST3a("msub $t0, $t1", 0x2, 0x6, t0, t1);
+ TESTINST3a("msub $t0, $t1", 0x356, 0x555, t0, t1);
+
+ printf("MSUBU\n");
+ TESTINST3a("msubu $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, 255, t0, t1);
+ TESTINST3a("msubu $t0, $t1", -1, 0, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, 1, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, 0, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x80000000, -1, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x80000000, 0xff000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, 255, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 1, 0, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, 1, t0, t1);
+ TESTINST3a("msubu $t0, $t1", -1, 0, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, -1, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, 0x80000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x80000000, 0, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x80000000, 0xff000000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0xffffffff, 0, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0, 0xffffffff, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0xffffffff, 0xffffffff, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("msubu $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1);
+
+ printf("MUL\n");
+ TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("mul $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+
+ printf("MULT\n");
+ TESTINST3a("mult $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, 255, t0, t1);
+ TESTINST3a("mult $t0, $t1", -1, 0, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, 1, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, 0, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x80000000, -1, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x7fffffff, 0, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x80000000, 0xff000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, 255, t0, t1);
+ TESTINST3a("mult $t0, $t1", 1, 0, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, 1, t0, t1);
+ TESTINST3a("mult $t0, $t1", -1, 0, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, -1, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, 0x80000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x80000000, 0, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x80000000, 0xff000000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0xffffffff, 0, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0, 0xffffffff, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0xffffffff, 0xffffffff, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("mult $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1);
+
+ printf("MULTU\n");
+ TESTINST3a("multu $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, 255, t0, t1);
+ TESTINST3a("multu $t0, $t1", -1, 0, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, 1, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, 0, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x80000000, -1, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x7fffffff, 0, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x80000000, 0xff000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, 255, t0, t1);
+ TESTINST3a("multu $t0, $t1", 1, 0, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, 1, t0, t1);
+ TESTINST3a("multu $t0, $t1", -1, 0, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, -1, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, 0x80000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x80000000, 0, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x80000000, 0x80000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x80000000, 0xff000000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0xffffffff, 0, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0, 0xffffffff, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0xffffffff, 0xffffffff, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
+ TESTINST3a("multu $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1);
+
+ printf("NOR\n");
+ TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("nor $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+
+ printf("WSBH\n");
+ TESTINST3("wsbh $t0, $t1", 0x2, t0, t1);
+ TESTINST3("wsbh $t0, $t1", 0x28, t0, t1);
+ TESTINST3("wsbh $t0, $t1", -258, t0, t1);
+ TESTINST3("wsbh $t0, $t1", 0x7fffffff, t0, t1);
+ TESTINST3("wsbh $t0, $t1", -11, t0, t1);
+ TESTINST3("wsbh $t0, $t1", 0xffffffff, t0, t1);
+ TESTINST3("wsbh $t0, $t1", 0x16, t0, t1);
+ TESTINST3("wsbh $t0, $t1", -1, t0, t1);
+
+ printf("NOT\n");
+ TESTINST3("not $t0, $t1", 0x2, t0, t1);
+ TESTINST3("not $t0, $t1", 0x28, t0, t1);
+ TESTINST3("not $t0, $t1", -258, t0, t1);
+ TESTINST3("not $t0, $t1", 0x7fffffff, t0, t1);
+ TESTINST3("not $t0, $t1", -11, t0, t1);
+ TESTINST3("not $t0, $t1", 0xffffffff, t0, t1);
+ TESTINST3("not $t0, $t1", 0x16, t0, t1);
+ TESTINST3("not $t0, $t1", -1, t0, t1);
+
+ printf("NEGU\n");
+ TESTINST3("negu $t0, $t1", 0x2, t0, t1);
+ TESTINST3("negu $t0, $t1", 0x28, t0, t1);
+ TESTINST3("negu $t0, $t1", -258, t0, t1);
+ TESTINST3("negu $t0, $t1", 0x7fffffff, t0, t1);
+ TESTINST3("negu $t0, $t1", -11, t0, t1);
+ TESTINST3("negu $t0, $t1", 0xffffffff, t0, t1);
+ TESTINST3("negu $t0, $t1", 0x16, t0, t1);
+ TESTINST3("negu $t0, $t1", -1, t0, t1);
+
+ printf("OR\n");
+ TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("or $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+
+ printf("ORI\n");
+ TESTINST2("ori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
+ TESTINST2("ori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
+ TESTINST2("ori $t0, $t1, 255", 0, 255, t0, t1);
+ TESTINST2("ori $t0, $t1, 0", -1, 0, t0, t1);
+ TESTINST2("ori $t0, $t1, 1", 0, 1, t0, t1);
+ TESTINST2("ori $t0, $t1, 0", 0, 0, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
+ TESTINST2("ori $t0, $t1, 0", 0x7fffffff, 0, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
+ TESTINST2("ori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
+ TESTINST2("ori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
+ TESTINST2("ori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
+ TESTINST2("ori $t0, $t1, 255", 0, 255, t0, t1);
+ TESTINST2("ori $t0, $t1, 0", 1, 0, t0, t1);
+ TESTINST2("ori $t0, $t1, 1", 0, 1, t0, t1);
+ TESTINST2("ori $t0, $t1, 0", -1, 0, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x8000", 0, 0x8000, t0, t1);
+ TESTINST2("ori $t0, $t1, 0", 0x8000, 0, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
+ TESTINST2("ori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
+ TESTINST2("ori $t0, $t1, 0", 0xffff, 0, t0, t1);
+ TESTINST2("ori $t0, $t1, 0xffff", 0, 0xffff, t0, t1);
+ TESTINST2("ori $t0, $t1, 0xffff", 0xffffffff, 0xffff, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x7fff", 0x7fffffff, 0x7fff, t0, t1);
+ TESTINST2("ori $t0, $t1, 0x0000", 0x0000ffff, 0x0000, t0, t1);
+
+ printf("ROTR\n");
+ TESTINST2("rotr $t0, $t1, 0x00000000", 0x31415927, 0x00000000, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x00000010", 0x31415927, 0x00000010, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x0000001F", 0x31415927, 0x0000001F, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x00000020", 0x31415927, 0x00000020, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x00000021", 0x31415927, 0x00000021, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x00000000", 0x00088000, 0x00000000, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0x00000001", 0x00088000, 0x00000001, t0, t1);
+ TESTINST2("rotr $t0, $t1, 31", 0x00088000, 31, t0, t1);
+ TESTINST2("rotr $t0, $t1, 16", 0x00010000, 16, t0, t1);
+ TESTINST2("rotr $t0, $t1, 17", 0x00010000, 17, t0, t1);
+ TESTINST2("rotr $t0, $t1, 18", 0x00010000, 18, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0", 0, 0, t0, t1);
+ TESTINST2("rotr $t0, $t1, 0xffff", 0xffff, 0xffff, t0, t1);
+
+ printf("ROTRV\n");
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("rotrv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
+
+ printf("SEB\n");
+ TESTINST3("seb $t0, $t1", 0x2, t0, t1);
+ TESTINST3("seb $t0, $t1", 0x28, t0, t1);
+ TESTINST3("seb $t0, $t1", -258, t0, t1);
+ TESTINST3("seb $t0, $t1", 0x7fffffff, t0, t1);
+ TESTINST3("seb $t0, $t1", -11, t0, t1);
+ TESTINST3("seb $t0, $t1", 0xffffffff, t0, t1);
+ TESTINST3("seb $t0, $t1", 0x16, t0, t1);
+ TESTINST3("seb $t0, $t1", -1, t0, t1);
+
+ printf("SEH\n");
+ TESTINST3("seh $t0, $t1", 0x2, t0, t1);
+ TESTINST3("seh $t0, $t1", 0x28, t0, t1);
+ TESTINST3("seh $t0, $t1", -258, t0, t1);
+ TESTINST3("seh $t0, $t1", 0x7fffffff, t0, t1);
+ TESTINST3("seh $t0, $t1", -11, t0, t1);
+ TESTINST3("seh $t0, $t1", 0xffffffff, t0, t1);
+ TESTINST3("seh $t0, $t1", 0x16, t0, t1);
+ TESTINST3("seh $t0, $t1", -1, t0, t1);
+
+ printf("SLL\n");
+ TESTINST2("sll $t0, $t1, 0x00000000", 0x31415927, 0x00000000, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x00000010", 0x31415927, 0x00000010, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x0000001F", 0x31415927, 0x0000001F, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x00000000", 0x00088000, 0x00000000, t0, t1);
+ TESTINST2("sll $t0, $t1, 0x00000001", 0x00088000, 0x00000001, t0, t1);
+ TESTINST2("sll $t0, $t1, 31", 0x00088000, 31, t0, t1);
+ TESTINST2("sll $t0, $t1, 16", 0x00010000, 16, t0, t1);
+ TESTINST2("sll $t0, $t1, 17", 0x00010000, 17, t0, t1);
+ TESTINST2("sll $t0, $t1, 18", 0x00010000, 18, t0, t1);
+ TESTINST2("sll $t0, $t1, 0", 0, 0, t0, t1);
+
+ printf("SLLV\n");
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("sllv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
+
+ printf("SLT\n");
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("slt $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
+
+ printf("SLTI\n");
+ TESTINST2("slti $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
+ TESTINST2("slti $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
+ TESTINST2("slti $t0, $t1, 31", 0x00088000, 31, t0, t1);
+ TESTINST2("slti $t0, $t1, 16", 0x00010000, 16, t0, t1);
+ TESTINST2("slti $t0, $t1, 17", 0x00010000, 17, t0, t1);
+ TESTINST2("slti $t0, $t1, 18", 0x00010000, 18, t0, t1);
+ TESTINST2("slti $t0, $t1, 0", 0, 0, t0, t1);
+
+ printf("SLTIU\n");
+ TESTINST2("sltiu $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 31", 0x00088000, 31, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 16", 0x00010000, 16, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 17", 0x00010000, 17, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 18", 0x00010000, 18, t0, t1);
+ TESTINST2("sltiu $t0, $t1, 0", 0, 0, t0, t1);
+
+ printf("SLTU\n");
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("sltu $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
+
+ printf("SRA\n");
+ TESTINST2("sra $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
+ TESTINST2("sra $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
+ TESTINST2("sra $t0, $t1, 31", 0x00088000, 31, t0, t1);
+ TESTINST2("sra $t0, $t1, 16", 0x00010000, 16, t0, t1);
+ TESTINST2("sra $t0, $t1, 17", 0x00010000, 17, t0, t1);
+ TESTINST2("sra $t0, $t1, 18", 0x00010000, 18, t0, t1);
+ TESTINST2("sra $t0, $t1, 0", 0, 0, t0, t1);
+
+ printf("SRAV\n");
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("srav $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
+
+ printf("SRL\n");
+ TESTINST2("srl $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
+ TESTINST2("srl $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
+ TESTINST2("srl $t0, $t1, 31", 0x00088000, 31, t0, t1);
+ TESTINST2("srl $t0, $t1, 16", 0x00010000, 16, t0, t1);
+ TESTINST2("srl $t0, $t1, 17", 0x00010000, 17, t0, t1);
+ TESTINST2("srl $t0, $t1, 18", 0x00010000, 18, t0, t1);
+ TESTINST2("srl $t0, $t1, 0", 0, 0, t0, t1);
+
+ printf("SRLV\n");
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("srlv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
+
+ printf("SUBU\n");
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00001110, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
+
+ printf("SUB\n");
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x7fffffff, t0, t1, t2);
+ TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+
+ printf("XOR\n");
+ TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, 0, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x80000000, -1, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, 255, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 1, 0, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, 1, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", -1, 0, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, -1, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0xffffffff, 0, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0, 0xffffffff, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
+ TESTINST1("xor $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
+
+ printf("XORI\n");
+ TESTINST2("xori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
+ TESTINST2("xori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
+ TESTINST2("xori $t0, $t1, 255", 0, 255, t0, t1);
+ TESTINST2("xori $t0, $t1, 0", -1, 0, t0, t1);
+ TESTINST2("xori $t0, $t1, 1", 0, 1, t0, t1);
+ TESTINST2("xori $t0, $t1, 0", 0, 0, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
+ TESTINST2("xori $t0, $t1, 0", 0x7fffffff, 0, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
+ TESTINST2("xori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
+ TESTINST2("xori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
+ TESTINST2("xori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
+ TESTINST2("xori $t0, $t1, 255", 0, 255, t0, t1);
+ TESTINST2("xori $t0, $t1, 0", 1, 0, t0, t1);
+ TESTINST2("xori $t0, $t1, 1", 0, 1, t0, t1);
+ TESTINST2("xori $t0, $t1, 0", -1, 0, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x8000", 0, 0x8000, t0, t1);
+ TESTINST2("xori $t0, $t1, 0", 0x8000, 0, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
+ TESTINST2("xori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
+ TESTINST2("xori $t0, $t1, 0", 0xffff, 0, t0, t1);
+ TESTINST2("xori $t0, $t1, 0xffff", 0, 0xffff, t0, t1);
+ TESTINST2("xori $t0, $t1, 0xffff", 0xffffffff, 0xffff, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x7fff", 0x7fffffff, 0x7fff, t0, t1);
+ TESTINST2("xori $t0, $t1, 0x0000", 0x0000ffff, 0x0000, t0, t1);
+
+ printf("MFHI MFLO\n");
+ TESTINSN_HILO(0x31415927);
+ TESTINSN_HILO(0);
+ TESTINSN_HILO(-1);
+ TESTINSN_HILO(0xffffffff);
+ TESTINSN_HILO(0x8000);
+ TESTINSN_HILO(0x80000000);
+ TESTINSN_HILO(0x0000ffff);
+ TESTINSN_HILO(0x7fff);
+ TESTINSN_HILO(0x0dd0);
+ TESTINSN_HILO(0xff00);
+
+ return 0;
+}
--- /dev/null
+ADD
+add $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+add $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x00000002 rs 0x00000001, rt 0x00000001
+add $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+add $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0xffffffff
+add $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x5859704f rs 0x31415927, rt 0x27181728
+add $t0, $t1, $t2 :: rd 0xc859704f rs 0x31415927, rt 0x97181728
+add $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+add $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+ADDI
+addi $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+addi $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+addi $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000000
+addi $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000001
+addi $t0, $t1, -1 :: rt 0xffffffff rs 0x00000000, imm 0xffffffff
+addi $t0, $t1, -1 :: rt 0x00000000 rs 0x00000001, imm 0xffffffff
+addi $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+addi $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+addi $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+ADDIU
+addiu $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+addiu $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+addiu $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000000
+addiu $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000001
+addiu $t0, $t1, -1 :: rt 0xffffffff rs 0x00000000, imm 0xffffffff
+addiu $t0, $t1, -1 :: rt 0x00000000 rs 0x00000001, imm 0xffffffff
+addiu $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+addiu $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+addiu $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+ADDU
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000002 rs 0x00000001, rt 0x00000001
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0xffffffff
+addu $t0, $t1, $t2 :: rd 0x5859704f rs 0x31415927, rt 0x27181728
+addu $t0, $t1, $t2 :: rd 0xc859704f rs 0x31415927, rt 0x97181728
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+addu $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+addu $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x80000000, rt 0x7fffffff
+addu $t0, $t1, $t2 :: rd 0xfffffffe rs 0x7fffffff, rt 0x7fffffff
+AND
+and $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x20004800 rs 0x31415927, rt 0xee00ee00
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+and $t0, $t1, $t2 :: rd 0x0dd00000 rs 0x7fffffff, rt 0x0dd00000
+and $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x20004800 rs 0x31415927, rt 0xee00ee00
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+and $t0, $t1, $t2 :: rd 0x0dd00000 rs 0x7fffffff, rt 0x0dd00000
+ANDI
+andi $t0, $t1, 1 :: rt 0x00000000 rs 0x00000000, imm 0x00000001
+andi $t0, $t1, 0 :: rt 0x00000000 rs 0x00000001, imm 0x00000000
+andi $t0, $t1, 1 :: rt 0x00000001 rs 0x00000001, imm 0x00000001
+andi $t0, $t1, 1 :: rt 0x00000001 rs 0x7fffffff, imm 0x00000000
+andi $t0, $t1, 0 :: rt 0x00000000 rs 0x80000000, imm 0x00000000
+andi $t0, $t1, 0x3145 :: rt 0x00003145 rs 0xffffffff, imm 0x00003145
+CLO
+clo $t0, $t1 :: rd 0x00000000 rs 0x00000000
+clo $t0, $t1 :: rd 0x00000000 rs 0x00000001
+clo $t0, $t1 :: rd 0x00000000 rs 0x00000010
+clo $t0, $t1 :: rd 0x00000020 rs 0xffffffff
+CLZ
+clz $t0, $t1 :: rd 0x00000020 rs 0x00000000
+clz $t0, $t1 :: rd 0x0000001f rs 0x00000001
+clz $t0, $t1 :: rd 0x0000001b rs 0x00000010
+clz $t0, $t1 :: rd 0x00000000 rs 0xffffffff
+DIV
+div $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x00000003
+div $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x00000000 LO 0x00000001
+div $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0xffffffff
+div $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000000 LO 0xffffffff
+div $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000002 LO 0x00000000
+DIVU
+divu $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x00000003
+divu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x00000000 LO 0x00000001
+divu $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0xffffffff
+divu $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000001 LO 0x00000000
+divu $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000002 LO 0x00000000
+divu $t0, $t1 :: rs 0x00000000 rt 0x00000002 HI 0x00000000 LO 0x00000000
+EXT
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0xffffffff, pos 0x00000002, size 0x00000006
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0xffffffff, pos 0x00000002, size 0x00000006
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0xffffffff, pos 0x0000001f, size 0x00000006
+ext $t0, $t1, 2, 6 :: rt 0x00000000 rs 0x00000000, pos 0x00000020, size 0x00000020
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0x0000ffff, pos 0x0000001f, size 0x00000000
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0x000000ff, pos 0x0000001f, size 0x00000000
+ext $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x0000001f, size 0x00000000
+ext $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x00000000, size 0x0000001f
+ext $t0, $t1, 2, 6 :: rt 0x00000009 rs 0x31415927, pos 0x00000003, size 0x00000019
+INS
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0xffffffff, pos 0x00000002, size 0x00000006
+ins $t0, $t1, 2, 6 :: rt 0xffffffff rs 0xffffffff, pos 0x00000002, size 0x00000006
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0xffffffff, pos 0x0000001f, size 0x00000006
+ins $t0, $t1, 2, 6 :: rt 0x00000000 rs 0x00000000, pos 0x00000020, size 0x00000020
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0x0000ffff, pos 0x0000001f, size 0x00000000
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0x000000ff, pos 0x0000001f, size 0x00000000
+ins $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x0000001f, size 0x00000000
+ins $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x00000000, size 0x0000001f
+ins $t0, $t1, 2, 6 :: rt 0x0000009c rs 0x31415927, pos 0x00000003, size 0x00000019
+LB
+lb $t0, 0($t1) :: rt 0x0000001f
+lb $t0, 4($t1) :: rt 0x00000000
+lb $t0, 8($t1) :: rt 0x00000003
+lb $t0, 12($t1) :: rt 0xffffffff
+lb $t0, 16($t1) :: rt 0x0000002f
+lb $t0, 20($t1) :: rt 0x0000002b
+lb $t0, 24($t1) :: rt 0x0000002b
+lb $t0, 28($t1) :: rt 0x0000002a
+lb $t0, 32($t1) :: rt 0x0000003e
+lb $t0, 36($t1) :: rt 0x0000003c
+lb $t0, 40($t1) :: rt 0x0000003b
+lb $t0, 44($t1) :: rt 0x0000003a
+lb $t0, 48($t1) :: rt 0x00000045
+lb $t0, 52($t1) :: rt 0x00000046
+lb $t0, 56($t1) :: rt 0x0000004c
+lb $t0, 60($t1) :: rt 0x0000004c
+lb $t0, 64($t1) :: rt 0x00000041
+lb $t0, 2($t1) :: rt 0x0000001f
+lb $t0, 6($t1) :: rt 0x00000000
+lb $t0, 10($t1) :: rt 0x00000000
+lb $t0, 14($t1) :: rt 0xffffffff
+lb $t0, 18($t1) :: rt 0x0000002f
+lb $t0, 22($t1) :: rt 0x0000002c
+lb $t0, 26($t1) :: rt 0x0000002a
+lb $t0, 30($t1) :: rt 0x0000002d
+lb $t0, 34($t1) :: rt 0x00000034
+lb $t0, 38($t1) :: rt 0x00000035
+LBU
+lbu $t0, 0($t1) :: rt 0x0000001f
+lbu $t0, 4($t1) :: rt 0x00000000
+lbu $t0, 8($t1) :: rt 0x00000003
+lbu $t0, 12($t1) :: rt 0x000000ff
+lbu $t0, 16($t1) :: rt 0x0000002f
+lbu $t0, 20($t1) :: rt 0x0000002b
+lbu $t0, 24($t1) :: rt 0x0000002b
+lbu $t0, 28($t1) :: rt 0x0000002a
+lbu $t0, 32($t1) :: rt 0x0000003e
+lbu $t0, 36($t1) :: rt 0x0000003c
+lbu $t0, 40($t1) :: rt 0x0000003b
+lbu $t0, 44($t1) :: rt 0x0000003a
+lbu $t0, 48($t1) :: rt 0x00000045
+lbu $t0, 52($t1) :: rt 0x00000046
+lbu $t0, 56($t1) :: rt 0x0000004c
+lbu $t0, 60($t1) :: rt 0x0000004c
+lbu $t0, 64($t1) :: rt 0x00000041
+lbu $t0, 2($t1) :: rt 0x0000001f
+lbu $t0, 6($t1) :: rt 0x00000000
+lbu $t0, 10($t1) :: rt 0x00000000
+lbu $t0, 14($t1) :: rt 0x000000ff
+lbu $t0, 18($t1) :: rt 0x0000002f
+lbu $t0, 22($t1) :: rt 0x0000002c
+lbu $t0, 26($t1) :: rt 0x0000002a
+lbu $t0, 30($t1) :: rt 0x0000002d
+lbu $t0, 34($t1) :: rt 0x00000034
+lbu $t0, 38($t1) :: rt 0x00000035
+LH
+lh $t0, 0($t1) :: rt 0x00001e1f
+lh $t0, 4($t1) :: rt 0x00000000
+lh $t0, 8($t1) :: rt 0x00000003
+lh $t0, 12($t1) :: rt 0xffffffff
+lh $t0, 16($t1) :: rt 0x00002e2f
+lh $t0, 20($t1) :: rt 0x00002b2b
+lh $t0, 24($t1) :: rt 0x00002e2b
+lh $t0, 28($t1) :: rt 0x00002d2a
+lh $t0, 32($t1) :: rt 0x00003f3e
+lh $t0, 36($t1) :: rt 0x00003d3c
+lh $t0, 40($t1) :: rt 0x00003c3b
+lh $t0, 44($t1) :: rt 0x00003b3a
+lh $t0, 48($t1) :: rt 0x00004e45
+lh $t0, 52($t1) :: rt 0x00004d46
+lh $t0, 56($t1) :: rt 0x0000474c
+lh $t0, 60($t1) :: rt 0x00004a4c
+lh $t0, 64($t1) :: rt 0x00004441
+lh $t0, 2($t1) :: rt 0x0000121f
+lh $t0, 6($t1) :: rt 0x00000000
+lh $t0, 10($t1) :: rt 0x00000000
+lh $t0, 14($t1) :: rt 0xffffffff
+lh $t0, 18($t1) :: rt 0x0000232f
+lh $t0, 22($t1) :: rt 0x0000242c
+lh $t0, 26($t1) :: rt 0x0000252a
+lh $t0, 30($t1) :: rt 0x0000262d
+lh $t0, 34($t1) :: rt 0x00003f34
+lh $t0, 38($t1) :: rt 0x00003e35
+LHU
+lhu $t0, 0($t1) :: rt 0x00001e1f
+lhu $t0, 4($t1) :: rt 0x00000000
+lhu $t0, 8($t1) :: rt 0x00000003
+lhu $t0, 12($t1) :: rt 0x0000ffff
+lhu $t0, 16($t1) :: rt 0x00002e2f
+lhu $t0, 20($t1) :: rt 0x00002b2b
+lhu $t0, 24($t1) :: rt 0x00002e2b
+lhu $t0, 28($t1) :: rt 0x00002d2a
+lhu $t0, 32($t1) :: rt 0x00003f3e
+lhu $t0, 36($t1) :: rt 0x00003d3c
+lhu $t0, 40($t1) :: rt 0x00003c3b
+lhu $t0, 44($t1) :: rt 0x00003b3a
+lhu $t0, 48($t1) :: rt 0x00004e45
+lhu $t0, 52($t1) :: rt 0x00004d46
+lhu $t0, 56($t1) :: rt 0x0000474c
+lhu $t0, 60($t1) :: rt 0x00004a4c
+lhu $t0, 64($t1) :: rt 0x00004441
+lhu $t0, 2($t1) :: rt 0x0000121f
+lhu $t0, 6($t1) :: rt 0x00000000
+lhu $t0, 10($t1) :: rt 0x00000000
+lhu $t0, 14($t1) :: rt 0x0000ffff
+lhu $t0, 18($t1) :: rt 0x0000232f
+lhu $t0, 22($t1) :: rt 0x0000242c
+lhu $t0, 26($t1) :: rt 0x0000252a
+lhu $t0, 30($t1) :: rt 0x0000262d
+lhu $t0, 34($t1) :: rt 0x00003f34
+lhu $t0, 38($t1) :: rt 0x00003e35
+LUI
+lui $t0, 0xffff :: rd 0xffff0000 rs 0x0000ffff
+lui $t0, 0xff00 :: rd 0xff000000 rs 0x0000ff00
+lui $t0, 0xff :: rd 0x00ff0000 rs 0x000000ff
+lui $t0, 0x0 :: rd 0x00000000 rs 0x00000000
+lui $t0, 0x5 :: rd 0x00050000 rs 0x00000005
+lui $t0, 0x387 :: rd 0x03870000 rs 0x00000387
+LW
+lw $t0, 0($t1) :: rt 0x121f1e1f
+lw $t0, 4($t1) :: rt 0x00000000
+lw $t0, 8($t1) :: rt 0x00000003
+lw $t0, 12($t1) :: rt 0xffffffff
+lw $t0, 16($t1) :: rt 0x232f2e2f
+lw $t0, 20($t1) :: rt 0x242c2b2b
+lw $t0, 24($t1) :: rt 0x252a2e2b
+lw $t0, 28($t1) :: rt 0x262d2d2a
+lw $t0, 32($t1) :: rt 0x3f343f3e
+lw $t0, 36($t1) :: rt 0x3e353d3c
+lw $t0, 40($t1) :: rt 0x363a3c3b
+lw $t0, 44($t1) :: rt 0x3b373b3a
+lw $t0, 48($t1) :: rt 0x454f4e45
+lw $t0, 52($t1) :: rt 0x4e464d46
+lw $t0, 56($t1) :: rt 0x474d474c
+lw $t0, 60($t1) :: rt 0x4a484a4c
+lw $t0, 64($t1) :: rt 0x00444441
+lw $t0, 2($t1) :: rt 0x0000121f
+lw $t0, 6($t1) :: rt 0x00030000
+lw $t0, 10($t1) :: rt 0xffff0000
+lw $t0, 14($t1) :: rt 0x2e2fffff
+lw $t0, 18($t1) :: rt 0x2b2b232f
+lw $t0, 22($t1) :: rt 0x2e2b242c
+lw $t0, 26($t1) :: rt 0x2d2a252a
+lw $t0, 30($t1) :: rt 0x3f3e262d
+lw $t0, 34($t1) :: rt 0x3d3c3f34
+lw $t0, 38($t1) :: rt 0x3c3b3e35
+LWL
+lwl $t0, 0($t1) :: rt 0x1f000000
+lwl $t0, 4($t1) :: rt 0x00000000
+lwl $t0, 8($t1) :: rt 0x03000000
+lwl $t0, 12($t1) :: rt 0xff000000
+lwl $t0, 16($t1) :: rt 0x2f000000
+lwl $t0, 20($t1) :: rt 0x2b000000
+lwl $t0, 24($t1) :: rt 0x2b000000
+lwl $t0, 28($t1) :: rt 0x2a000000
+lwl $t0, 32($t1) :: rt 0x3e000000
+lwl $t0, 36($t1) :: rt 0x3c000000
+lwl $t0, 40($t1) :: rt 0x3b000000
+lwl $t0, 44($t1) :: rt 0x3a000000
+lwl $t0, 48($t1) :: rt 0x45000000
+lwl $t0, 52($t1) :: rt 0x46000000
+lwl $t0, 56($t1) :: rt 0x4c000000
+lwl $t0, 60($t1) :: rt 0x4c000000
+lwl $t0, 64($t1) :: rt 0x41000000
+lwl $t0, 2($t1) :: rt 0x1f1e1f00
+lwl $t0, 6($t1) :: rt 0x00000000
+lwl $t0, 10($t1) :: rt 0x00000300
+lwl $t0, 14($t1) :: rt 0xffffff00
+lwl $t0, 18($t1) :: rt 0x2f2e2f00
+lwl $t0, 22($t1) :: rt 0x2c2b2b00
+lwl $t0, 26($t1) :: rt 0x2a2e2b00
+lwl $t0, 30($t1) :: rt 0x2d2d2a00
+lwl $t0, 34($t1) :: rt 0x343f3e00
+lwl $t0, 38($t1) :: rt 0x353d3c00
+LWR
+lwr $t0, 0($t1) :: rt 0x121f1e1f
+lwr $t0, 4($t1) :: rt 0x00000000
+lwr $t0, 8($t1) :: rt 0x00000003
+lwr $t0, 12($t1) :: rt 0xffffffff
+lwr $t0, 16($t1) :: rt 0x232f2e2f
+lwr $t0, 20($t1) :: rt 0x242c2b2b
+lwr $t0, 24($t1) :: rt 0x252a2e2b
+lwr $t0, 28($t1) :: rt 0x262d2d2a
+lwr $t0, 32($t1) :: rt 0x3f343f3e
+lwr $t0, 36($t1) :: rt 0x3e353d3c
+lwr $t0, 40($t1) :: rt 0x363a3c3b
+lwr $t0, 44($t1) :: rt 0x3b373b3a
+lwr $t0, 48($t1) :: rt 0x454f4e45
+lwr $t0, 52($t1) :: rt 0x4e464d46
+lwr $t0, 56($t1) :: rt 0x474d474c
+lwr $t0, 60($t1) :: rt 0x4a484a4c
+lwr $t0, 64($t1) :: rt 0x00444441
+lwr $t0, 2($t1) :: rt 0x0000121f
+lwr $t0, 6($t1) :: rt 0x00000000
+lwr $t0, 10($t1) :: rt 0x00000000
+lwr $t0, 14($t1) :: rt 0x0000ffff
+lwr $t0, 18($t1) :: rt 0x0000232f
+lwr $t0, 22($t1) :: rt 0x0000242c
+lwr $t0, 26($t1) :: rt 0x0000252a
+lwr $t0, 30($t1) :: rt 0x0000262d
+lwr $t0, 34($t1) :: rt 0x00003f34
+lwr $t0, 38($t1) :: rt 0x00003e35
+MADD
+madd $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x0000000c
+madd $t0, $t1 :: rs 0x00000055 rt 0x00000028 HI 0x00000000 LO 0x00000d48
+madd $t0, $t1 :: rs 0x00000018 rt 0x00000fff HI 0x00000000 LO 0x00017fe8
+madd $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+madd $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0xffffffff LO 0xffffffff
+madd $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0xffffffff LO 0xffffffff
+madd $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000000 LO 0x0000000c
+madd $t0, $t1 :: rs 0x00000356 rt 0x00000555 HI 0x00000000 LO 0x0011c98e
+MADDU
+maddu $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x0000000c
+maddu $t0, $t1 :: rs 0x00000055 rt 0x00000028 HI 0x00000000 LO 0x00000d48
+maddu $t0, $t1 :: rs 0x00000018 rt 0x00000fff HI 0x00000000 LO 0x00017fe8
+maddu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+maddu $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0xffffffff
+maddu $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000000 LO 0xffffffff
+maddu $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000000 LO 0x0000000c
+maddu $t0, $t1 :: rs 0x00000356 rt 0x00000555 HI 0x00000000 LO 0x0011c98e
+MOVN
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xffffffff
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+MOVZ
+movz $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+movz $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xffffffff
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xee00ee00
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+MSUB
+msub $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0xffffffff LO 0xfffffff4
+msub $t0, $t1 :: rs 0x00000055 rt 0x00000028 HI 0xffffffff LO 0xfffff2b8
+msub $t0, $t1 :: rs 0x00000018 rt 0x00000fff HI 0xffffffff LO 0xfffe8018
+msub $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0xc0000000 LO 0xffffffff
+msub $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0x00000001
+msub $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000000 LO 0x00000001
+msub $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0xffffffff LO 0xfffffff4
+msub $t0, $t1 :: rs 0x00000356 rt 0x00000555 HI 0xffffffff LO 0xffee3672
+MSUBU
+msubu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xcebea6d9 LO 0x31415927
+msubu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xd2351152 LO 0xfd1dbe00
+msubu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0xffffffff HI 0x80000000 LO 0x80000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0xc0000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0xc0000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x80800000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0xf9180000 LO 0x0dd00000
+msubu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xcebea6d9 LO 0x31415927
+msubu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xd2351152 LO 0xfd1dbe00
+msubu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000001 rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x80000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0xc0000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x80800000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0xf9180000 LO 0x0dd00000
+msubu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0xffffffff rt 0xffffffff HI 0x00000001 LO 0xffffffff
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0xc0000000 LO 0xffffffff
+msubu $t0, $t1 :: rs 0x0000ffff rt 0x0000ffff HI 0xffffffff LO 0x0001ffff
+MUL
+mul $t0, $t1, $t2 :: rd 0xcebea6d9 rs 0x31415927, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x02e24200 rs 0x31415927, rt 0xee00ee00
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xff000000
+mul $t0, $t1, $t2 :: rd 0xf2300000 rs 0x7fffffff, rt 0x0dd00000
+mul $t0, $t1, $t2 :: rd 0xcebea6d9 rs 0x31415927, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x02e24200 rs 0x31415927, rt 0xee00ee00
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xff000000
+mul $t0, $t1, $t2 :: rd 0xf2300000 rs 0x7fffffff, rt 0x0dd00000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000001 rs 0x7fffffff, rt 0x7fffffff
+mul $t0, $t1, $t2 :: rd 0xfffe0001 rs 0x0000ffff, rt 0x0000ffff
+MULT
+mult $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xffffffff LO 0xcebea6d9
+mult $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xfc899586 LO 0x02e24200
+mult $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0xffffffff HI 0x00000000 LO 0x80000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+mult $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x00800000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+mult $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xffffffff LO 0xcebea6d9
+mult $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xfc899586 LO 0x02e24200
+mult $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000001 rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x80000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+mult $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x00800000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+mult $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0xffffffff rt 0xffffffff HI 0x00000000 LO 0x00000001
+mult $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+mult $t0, $t1 :: rs 0x0000ffff rt 0x0000ffff HI 0x00000000 LO 0xfffe0001
+MULTU
+multu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0x31415926 LO 0xcebea6d9
+multu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0x2dcaeead LO 0x02e24200
+multu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0xffffffff HI 0x7fffffff LO 0x80000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0x3fffffff LO 0x80000000
+multu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x7f800000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+multu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0x31415926 LO 0xcebea6d9
+multu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0x2dcaeead LO 0x02e24200
+multu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000001 rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x80000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0x3fffffff LO 0x80000000
+multu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x7f800000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+multu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0xffffffff rt 0xffffffff HI 0xfffffffe LO 0x00000001
+multu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+multu $t0, $t1 :: rs 0x0000ffff rt 0x0000ffff HI 0x00000000 LO 0xfffe0001
+NOR
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x00be00d8 rs 0x31415927, rt 0xee00ee00
+nor $t0, $t1, $t2 :: rd 0xffffff00 rs 0x00000000, rt 0x000000ff
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0xfffffffe rs 0x00000000, rt 0x00000001
+nor $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00ffffff rs 0x80000000, rt 0xff000000
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x0dd00000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x00be00d8 rs 0x31415927, rt 0xee00ee00
+nor $t0, $t1, $t2 :: rd 0xffffff00 rs 0x00000000, rt 0x000000ff
+nor $t0, $t1, $t2 :: rd 0xfffffffe rs 0x00000001, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0xfffffffe rs 0x00000000, rt 0x00000001
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x00000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00ffffff rs 0x80000000, rt 0xff000000
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x0dd00000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x7fffffff
+nor $t0, $t1, $t2 :: rd 0xffff0000 rs 0x0000ffff, rt 0x0000ffff
+WSBH
+wsbh $t0, $t1 :: rd 0x00000200 rs 0x00000002
+wsbh $t0, $t1 :: rd 0x00002800 rs 0x00000028
+wsbh $t0, $t1 :: rd 0xfffffefe rs 0xfffffefe
+wsbh $t0, $t1 :: rd 0xff7fffff rs 0x7fffffff
+wsbh $t0, $t1 :: rd 0xfffff5ff rs 0xfffffff5
+wsbh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+wsbh $t0, $t1 :: rd 0x00001600 rs 0x00000016
+wsbh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+NOT
+not $t0, $t1 :: rd 0xfffffffd rs 0x00000002
+not $t0, $t1 :: rd 0xffffffd7 rs 0x00000028
+not $t0, $t1 :: rd 0x00000101 rs 0xfffffefe
+not $t0, $t1 :: rd 0x80000000 rs 0x7fffffff
+not $t0, $t1 :: rd 0x0000000a rs 0xfffffff5
+not $t0, $t1 :: rd 0x00000000 rs 0xffffffff
+not $t0, $t1 :: rd 0xffffffe9 rs 0x00000016
+not $t0, $t1 :: rd 0x00000000 rs 0xffffffff
+NEGU
+negu $t0, $t1 :: rd 0xfffffffe rs 0x00000002
+negu $t0, $t1 :: rd 0xffffffd8 rs 0x00000028
+negu $t0, $t1 :: rd 0x00000102 rs 0xfffffefe
+negu $t0, $t1 :: rd 0x80000001 rs 0x7fffffff
+negu $t0, $t1 :: rd 0x0000000b rs 0xfffffff5
+negu $t0, $t1 :: rd 0x00000001 rs 0xffffffff
+negu $t0, $t1 :: rd 0xffffffea rs 0x00000016
+negu $t0, $t1 :: rd 0x00000001 rs 0xffffffff
+OR
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x31415927, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0xff41ff27 rs 0x31415927, rt 0xee00ee00
+or $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+or $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x80000000, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xff000000 rs 0x80000000, rt 0xff000000
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x31415927, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0xff41ff27 rs 0x31415927, rt 0xee00ee00
+or $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+or $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xff000000 rs 0x80000000, rt 0xff000000
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x7fffffff
+or $t0, $t1, $t2 :: rd 0x0000ffff rs 0x0000ffff, rt 0x0000ffff
+ORI
+ori $t0, $t1, 0xffff :: rt 0x3141ffff rs 0x31415927, imm 0x0000ffff
+ori $t0, $t1, 0xee00 :: rt 0x3141ff27 rs 0x31415927, imm 0x0000ee00
+ori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+ori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+ori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+ori $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+ori $t0, $t1, 0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+ori $t0, $t1, 0x8000 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00008000
+ori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+ori $t0, $t1, 0x0dd0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000dd0
+ori $t0, $t1, 0xffff :: rt 0x3141ffff rs 0x31415927, imm 0x0000ffff
+ori $t0, $t1, 0xee00 :: rt 0x3141ff27 rs 0x31415927, imm 0x0000ee00
+ori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+ori $t0, $t1, 0 :: rt 0x00000001 rs 0x00000001, imm 0x00000000
+ori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+ori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x00008000 rs 0x00000000, imm 0x00008000
+ori $t0, $t1, 0 :: rt 0x00008000 rs 0x00008000, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+ori $t0, $t1, 0x8000 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00008000
+ori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+ori $t0, $t1, 0x0dd0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000dd0
+ori $t0, $t1, 0 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+ori $t0, $t1, 0xffff :: rt 0x0000ffff rs 0x00000000, imm 0x0000ffff
+ori $t0, $t1, 0xffff :: rt 0xffffffff rs 0xffffffff, imm 0x0000ffff
+ori $t0, $t1, 0x7fff :: rt 0x7fffffff rs 0x7fffffff, imm 0x00007fff
+ori $t0, $t1, 0x0000 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+ROTR
+rotr $t0, $t1, 0x00000000 :: rt 0x31415927 rs 0x31415927, imm 0x00000000
+rotr $t0, $t1, 0x00000001 :: rt 0x98a0ac93 rs 0x31415927, imm 0x00000001
+rotr $t0, $t1, 0x00000002 :: rt 0xcc505649 rs 0x31415927, imm 0x00000002
+rotr $t0, $t1, 0x0000000F :: rt 0xb24e6282 rs 0x31415927, imm 0x0000000f
+rotr $t0, $t1, 0x00000010 :: rt 0x59273141 rs 0x31415927, imm 0x00000010
+rotr $t0, $t1, 0x0000001F :: rt 0x6282b24e rs 0x31415927, imm 0x0000001f
+rotr $t0, $t1, 0x00000020 :: rt 0x31415927 rs 0x31415927, imm 0x00000020
+rotr $t0, $t1, 0x00000021 :: rt 0x98a0ac93 rs 0x31415927, imm 0x00000021
+rotr $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x00000000
+rotr $t0, $t1, 0x00000001 :: rt 0x00044000 rs 0x00088000, imm 0x00000001
+rotr $t0, $t1, 31 :: rt 0x00110000 rs 0x00088000, imm 0x0000001f
+rotr $t0, $t1, 16 :: rt 0x00000001 rs 0x00010000, imm 0x00000010
+rotr $t0, $t1, 17 :: rt 0x80000000 rs 0x00010000, imm 0x00000011
+rotr $t0, $t1, 18 :: rt 0x40000000 rs 0x00010000, imm 0x00000012
+rotr $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+rotr $t0, $t1, 0xffff :: rt 0x0001fffe rs 0x0000ffff, imm 0x0000ffff
+ROTRV
+rotrv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+rotrv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+rotrv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0xfffffffe rs 0x7fffffff, rt 0x7fffffff
+rotrv $t0, $t1, $t2 :: rd 0x0001fffe rs 0x0000ffff, rt 0x0000ffff
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x98a0ac93 rs 0x31415927, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0xcc505649 rs 0x31415927, rt 0x00000002
+rotrv $t0, $t1, $t2 :: rd 0xb24e6282 rs 0x31415927, rt 0x0000000f
+rotrv $t0, $t1, $t2 :: rd 0x59273141 rs 0x31415927, rt 0x00000010
+rotrv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0x0000001f
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+rotrv $t0, $t1, $t2 :: rd 0x98a0ac93 rs 0x31415927, rt 0x00000021
+rotrv $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00044000 rs 0x00088000, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0x00110000 rs 0x00088000, rt 0x0000001f
+rotrv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00010000, rt 0x00000010
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x00010000, rt 0x00000011
+rotrv $t0, $t1, $t2 :: rd 0x40000000 rs 0x00010000, rt 0x00000012
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x0001fffe rs 0x0000ffff, rt 0x0000ffff
+SEB
+seb $t0, $t1 :: rd 0x00000002 rs 0x00000002
+seb $t0, $t1 :: rd 0x00000028 rs 0x00000028
+seb $t0, $t1 :: rd 0xfffffffe rs 0xfffffefe
+seb $t0, $t1 :: rd 0xffffffff rs 0x7fffffff
+seb $t0, $t1 :: rd 0xfffffff5 rs 0xfffffff5
+seb $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+seb $t0, $t1 :: rd 0x00000016 rs 0x00000016
+seb $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+SEH
+seh $t0, $t1 :: rd 0x00000002 rs 0x00000002
+seh $t0, $t1 :: rd 0x00000028 rs 0x00000028
+seh $t0, $t1 :: rd 0xfffffefe rs 0xfffffefe
+seh $t0, $t1 :: rd 0xffffffff rs 0x7fffffff
+seh $t0, $t1 :: rd 0xfffffff5 rs 0xfffffff5
+seh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+seh $t0, $t1 :: rd 0x00000016 rs 0x00000016
+seh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+SLL
+sll $t0, $t1, 0x00000000 :: rt 0x31415927 rs 0x31415927, imm 0x00000000
+sll $t0, $t1, 0x00000001 :: rt 0x6282b24e rs 0x31415927, imm 0x00000001
+sll $t0, $t1, 0x00000002 :: rt 0xc505649c rs 0x31415927, imm 0x00000002
+sll $t0, $t1, 0x0000000F :: rt 0xac938000 rs 0x31415927, imm 0x0000000f
+sll $t0, $t1, 0x00000010 :: rt 0x59270000 rs 0x31415927, imm 0x00000010
+sll $t0, $t1, 0x0000001F :: rt 0x80000000 rs 0x31415927, imm 0x0000001f
+sll $t0, $t1, 0x00000009 :: rt 0x82b24e00 rs 0x31415927, imm 0x00000009
+sll $t0, $t1, 0x0000000A :: rt 0x05649c00 rs 0x31415927, imm 0x0000000a
+sll $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x00000000
+sll $t0, $t1, 0x00000001 :: rt 0x00110000 rs 0x00088000, imm 0x00000001
+sll $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+sll $t0, $t1, 16 :: rt 0x00000000 rs 0x00010000, imm 0x00000010
+sll $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+sll $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+sll $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SLLV
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x31415927, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+sllv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x31415927, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+sllv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+sllv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0xffffffff, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x7fffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x0000ffff, rt 0x0000ffff
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0xc505649c rs 0x31415927, rt 0x00000002
+sllv $t0, $t1, $t2 :: rd 0xac938000 rs 0x31415927, rt 0x0000000f
+sllv $t0, $t1, $t2 :: rd 0x59270000 rs 0x31415927, rt 0x00000010
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x31415927, rt 0x0000001f
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+sllv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0x00000021
+sllv $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00110000 rs 0x00088000, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000010
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x0000ffff, rt 0x0000ffff
+SLT
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xee00ee00
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xee00ee00
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000002
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000000f
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000010
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000020
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000021
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000010
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SLTI
+slti $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00000001, imm 0x31415927
+slti $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x31415927, imm 0x00000001
+slti $t0, $t1, 0x00000002 :: rt 0x00000000 rs 0x31415927, imm 0x00000002
+slti $t0, $t1, 0x0000000F :: rt 0x00000000 rs 0x31415927, imm 0x0000000f
+slti $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+slti $t0, $t1, 0x0000001F :: rt 0x00000001 rs 0x00000010, imm 0x31415927
+slti $t0, $t1, 0x00000009 :: rt 0x00000000 rs 0x31415927, imm 0x00000009
+slti $t0, $t1, 0x0000000A :: rt 0x00000000 rs 0x31415927, imm 0x0000000a
+slti $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00088000, imm 0x0000000a
+slti $t0, $t1, 0x00000001 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+slti $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+slti $t0, $t1, 16 :: rt 0x00000000 rs 0x00010000, imm 0x00000010
+slti $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+slti $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+slti $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SLTIU
+sltiu $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00000001, imm 0x31415927
+sltiu $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x31415927, imm 0x00000001
+sltiu $t0, $t1, 0x00000002 :: rt 0x00000000 rs 0x31415927, imm 0x00000002
+sltiu $t0, $t1, 0x0000000F :: rt 0x00000000 rs 0x31415927, imm 0x0000000f
+sltiu $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+sltiu $t0, $t1, 0x0000001F :: rt 0x00000001 rs 0x00000010, imm 0x31415927
+sltiu $t0, $t1, 0x00000009 :: rt 0x00000000 rs 0x31415927, imm 0x00000009
+sltiu $t0, $t1, 0x0000000A :: rt 0x00000000 rs 0x31415927, imm 0x0000000a
+sltiu $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00088000, imm 0x0000000a
+sltiu $t0, $t1, 0x00000001 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+sltiu $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+sltiu $t0, $t1, 16 :: rt 0x00000000 rs 0x00010000, imm 0x00000010
+sltiu $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+sltiu $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+sltiu $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SLTU
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xee00ee00
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x7fffffff, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xee00ee00
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x7fffffff, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000002
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000000f
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000010
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000020
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000021
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000010
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SRA
+sra $t0, $t1, 0x00000000 :: rt 0x00000001 rs 0x00000001, imm 0x31415927
+sra $t0, $t1, 0x00000001 :: rt 0x18a0ac93 rs 0x31415927, imm 0x00000001
+sra $t0, $t1, 0x00000002 :: rt 0x0c505649 rs 0x31415927, imm 0x00000002
+sra $t0, $t1, 0x0000000F :: rt 0x00006282 rs 0x31415927, imm 0x0000000f
+sra $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+sra $t0, $t1, 0x0000001F :: rt 0x00000000 rs 0x00000010, imm 0x31415927
+sra $t0, $t1, 0x00000009 :: rt 0x0018a0ac rs 0x31415927, imm 0x00000009
+sra $t0, $t1, 0x0000000A :: rt 0x000c5056 rs 0x31415927, imm 0x0000000a
+sra $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x0000000a
+sra $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x00000000, imm 0x00000001
+sra $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+sra $t0, $t1, 16 :: rt 0x00000001 rs 0x00010000, imm 0x00000010
+sra $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+sra $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+sra $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SRAV
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0x80000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srav $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0x0c505649 rs 0x31415927, rt 0x00000002
+srav $t0, $t1, $t2 :: rd 0x00006282 rs 0x31415927, rt 0x0000000f
+srav $t0, $t1, $t2 :: rd 0x00003141 rs 0x31415927, rt 0x00000010
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+srav $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000021
+srav $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00044000 rs 0x00088000, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+srav $t0, $t1, $t2 :: rd 0x00000001 rs 0x00010000, rt 0x00000010
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SRL
+srl $t0, $t1, 0x00000000 :: rt 0x00000001 rs 0x00000001, imm 0x31415927
+srl $t0, $t1, 0x00000001 :: rt 0x18a0ac93 rs 0x31415927, imm 0x00000001
+srl $t0, $t1, 0x00000002 :: rt 0x0c505649 rs 0x31415927, imm 0x00000002
+srl $t0, $t1, 0x0000000F :: rt 0x00006282 rs 0x31415927, imm 0x0000000f
+srl $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+srl $t0, $t1, 0x0000001F :: rt 0x00000000 rs 0x00000010, imm 0x31415927
+srl $t0, $t1, 0x00000009 :: rt 0x0018a0ac rs 0x31415927, imm 0x00000009
+srl $t0, $t1, 0x0000000A :: rt 0x000c5056 rs 0x31415927, imm 0x0000000a
+srl $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x0000000a
+srl $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x00000000, imm 0x00000001
+srl $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+srl $t0, $t1, 16 :: rt 0x00000001 rs 0x00010000, imm 0x00000010
+srl $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+srl $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+srl $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SRLV
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0x0c505649 rs 0x31415927, rt 0x00000002
+srlv $t0, $t1, $t2 :: rd 0x00006282 rs 0x31415927, rt 0x0000000f
+srlv $t0, $t1, $t2 :: rd 0x00003141 rs 0x31415927, rt 0x00000010
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+srlv $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000021
+srlv $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00044000 rs 0x00088000, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00010000, rt 0x00000010
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SUBU
+subu $t0, $t1, $t2 :: rd 0x31415926 rs 0x31415927, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x31414817 rs 0x31415927, rt 0x00001110
+subu $t0, $t1, $t2 :: rd 0xffffff01 rs 0x00000000, rt 0x000000ff
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x80000001 rs 0x80000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x81000000 rs 0x80000000, rt 0xff000000
+subu $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+subu $t0, $t1, $t2 :: rd 0x31415928 rs 0x31415927, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x43406b27 rs 0x31415927, rt 0xee00ee00
+subu $t0, $t1, $t2 :: rd 0xffffff01 rs 0x00000000, rt 0x000000ff
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x81000000 rs 0x80000000, rt 0xff000000
+subu $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+subu $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x31415926 rs 0x31415927, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x31415925 rs 0x31415927, rt 0x00000002
+subu $t0, $t1, $t2 :: rd 0x31415918 rs 0x31415927, rt 0x0000000f
+subu $t0, $t1, $t2 :: rd 0x31415917 rs 0x31415927, rt 0x00000010
+subu $t0, $t1, $t2 :: rd 0x31415908 rs 0x31415927, rt 0x0000001f
+subu $t0, $t1, $t2 :: rd 0x31415907 rs 0x31415927, rt 0x00000020
+subu $t0, $t1, $t2 :: rd 0x31415906 rs 0x31415927, rt 0x00000021
+subu $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00087fff rs 0x00088000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x00087fe1 rs 0x00088000, rt 0x0000001f
+subu $t0, $t1, $t2 :: rd 0x0000fff0 rs 0x00010000, rt 0x00000010
+subu $t0, $t1, $t2 :: rd 0x0000ffef rs 0x00010000, rt 0x00000011
+subu $t0, $t1, $t2 :: rd 0x0000ffee rs 0x00010000, rt 0x00000012
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SUB
+subu $t0, $t1, $t2 :: rd 0x31415928 rs 0x31415927, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x0a2941ff rs 0x31415927, rt 0x27181728
+subu $t0, $t1, $t2 :: rd 0x9a2941ff rs 0x31415927, rt 0x97181728
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0x7fffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+XOR
+xor $t0, $t1, $t2 :: rd 0xcebea6d8 rs 0x31415927, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0xdf41b727 rs 0x31415927, rt 0xee00ee00
+xor $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x7f000000 rs 0x80000000, rt 0xff000000
+xor $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+xor $t0, $t1, $t2 :: rd 0xcebea6d8 rs 0x31415927, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0xdf41b727 rs 0x31415927, rt 0xee00ee00
+xor $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+xor $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x7f000000 rs 0x80000000, rt 0xff000000
+xor $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+XORI
+xori $t0, $t1, 0xffff :: rt 0x3141a6d8 rs 0x31415927, imm 0x0000ffff
+xori $t0, $t1, 0xee00 :: rt 0x3141b727 rs 0x31415927, imm 0x0000ee00
+xori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+xori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+xori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+xori $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+xori $t0, $t1, 0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+xori $t0, $t1, 0x8000 :: rt 0x7fff7fff rs 0x7fffffff, imm 0x00008000
+xori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+xori $t0, $t1, 0x0dd0 :: rt 0x7ffff22f rs 0x7fffffff, imm 0x00000dd0
+xori $t0, $t1, 0xffff :: rt 0x3141a6d8 rs 0x31415927, imm 0x0000ffff
+xori $t0, $t1, 0xee00 :: rt 0x3141b727 rs 0x31415927, imm 0x0000ee00
+xori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+xori $t0, $t1, 0 :: rt 0x00000001 rs 0x00000001, imm 0x00000000
+xori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+xori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x00008000 rs 0x00000000, imm 0x00008000
+xori $t0, $t1, 0 :: rt 0x00008000 rs 0x00008000, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+xori $t0, $t1, 0x8000 :: rt 0x7fff7fff rs 0x7fffffff, imm 0x00008000
+xori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+xori $t0, $t1, 0x0dd0 :: rt 0x7ffff22f rs 0x7fffffff, imm 0x00000dd0
+xori $t0, $t1, 0 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+xori $t0, $t1, 0xffff :: rt 0x0000ffff rs 0x00000000, imm 0x0000ffff
+xori $t0, $t1, 0xffff :: rt 0xffff0000 rs 0xffffffff, imm 0x0000ffff
+xori $t0, $t1, 0x7fff :: rt 0x7fff8000 rs 0x7fffffff, imm 0x00007fff
+xori $t0, $t1, 0x0000 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+MFHI MFLO
+mfhi mflo :: HI: 0x31415927, LO: 0x31415926
+mfhi mflo :: HI: 0x0, LO: 0xffffffff
+mfhi mflo :: HI: 0xffffffff, LO: 0xfffffffe
+mfhi mflo :: HI: 0xffffffff, LO: 0xfffffffe
+mfhi mflo :: HI: 0x8000, LO: 0x7fff
+mfhi mflo :: HI: 0x80000000, LO: 0x7fffffff
+mfhi mflo :: HI: 0xffff, LO: 0xfffe
+mfhi mflo :: HI: 0x7fff, LO: 0x7ffe
+mfhi mflo :: HI: 0xdd0, LO: 0xdcf
+mfhi mflo :: HI: 0xff00, LO: 0xfeff
--- /dev/null
+ADD
+add $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+add $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x00000002 rs 0x00000001, rt 0x00000001
+add $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+add $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0xffffffff
+add $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x5859704f rs 0x31415927, rt 0x27181728
+add $t0, $t1, $t2 :: rd 0xc859704f rs 0x31415927, rt 0x97181728
+add $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+add $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+add $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+ADDI
+addi $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+addi $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+addi $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000000
+addi $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000001
+addi $t0, $t1, -1 :: rt 0xffffffff rs 0x00000000, imm 0xffffffff
+addi $t0, $t1, -1 :: rt 0x00000000 rs 0x00000001, imm 0xffffffff
+addi $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+addi $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+addi $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+ADDIU
+addiu $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+addiu $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+addiu $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000000
+addiu $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000001
+addiu $t0, $t1, -1 :: rt 0xffffffff rs 0x00000000, imm 0xffffffff
+addiu $t0, $t1, -1 :: rt 0x00000000 rs 0x00000001, imm 0xffffffff
+addiu $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+addiu $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+addiu $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000
+ADDU
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000002 rs 0x00000001, rt 0x00000001
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0xffffffff
+addu $t0, $t1, $t2 :: rd 0x5859704f rs 0x31415927, rt 0x27181728
+addu $t0, $t1, $t2 :: rd 0xc859704f rs 0x31415927, rt 0x97181728
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+addu $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+addu $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x80000000, rt 0x7fffffff
+addu $t0, $t1, $t2 :: rd 0xfffffffe rs 0x7fffffff, rt 0x7fffffff
+AND
+and $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x20004800 rs 0x31415927, rt 0xee00ee00
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+and $t0, $t1, $t2 :: rd 0x0dd00000 rs 0x7fffffff, rt 0x0dd00000
+and $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x20004800 rs 0x31415927, rt 0xee00ee00
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+and $t0, $t1, $t2 :: rd 0x0dd00000 rs 0x7fffffff, rt 0x0dd00000
+ANDI
+andi $t0, $t1, 1 :: rt 0x00000000 rs 0x00000000, imm 0x00000001
+andi $t0, $t1, 0 :: rt 0x00000000 rs 0x00000001, imm 0x00000000
+andi $t0, $t1, 1 :: rt 0x00000001 rs 0x00000001, imm 0x00000001
+andi $t0, $t1, 1 :: rt 0x00000001 rs 0x7fffffff, imm 0x00000000
+andi $t0, $t1, 0 :: rt 0x00000000 rs 0x80000000, imm 0x00000000
+andi $t0, $t1, 0x3145 :: rt 0x00003145 rs 0xffffffff, imm 0x00003145
+CLO
+clo $t0, $t1 :: rd 0x00000000 rs 0x00000000
+clo $t0, $t1 :: rd 0x00000000 rs 0x00000001
+clo $t0, $t1 :: rd 0x00000000 rs 0x00000010
+clo $t0, $t1 :: rd 0x00000020 rs 0xffffffff
+CLZ
+clz $t0, $t1 :: rd 0x00000020 rs 0x00000000
+clz $t0, $t1 :: rd 0x0000001f rs 0x00000001
+clz $t0, $t1 :: rd 0x0000001b rs 0x00000010
+clz $t0, $t1 :: rd 0x00000000 rs 0xffffffff
+DIV
+div $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x00000003
+div $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x00000000 LO 0x00000001
+div $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0xffffffff
+div $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000000 LO 0xffffffff
+div $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000002 LO 0x00000000
+DIVU
+divu $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x00000003
+divu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x00000000 LO 0x00000001
+divu $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0xffffffff
+divu $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000001 LO 0x00000000
+divu $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000002 LO 0x00000000
+divu $t0, $t1 :: rs 0x00000000 rt 0x00000002 HI 0x00000000 LO 0x00000000
+EXT
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0xffffffff, pos 0x00000002, size 0x00000006
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0xffffffff, pos 0x00000002, size 0x00000006
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0xffffffff, pos 0x0000001f, size 0x00000006
+ext $t0, $t1, 2, 6 :: rt 0x00000000 rs 0x00000000, pos 0x00000020, size 0x00000020
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0x0000ffff, pos 0x0000001f, size 0x00000000
+ext $t0, $t1, 2, 6 :: rt 0x0000003f rs 0x000000ff, pos 0x0000001f, size 0x00000000
+ext $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x0000001f, size 0x00000000
+ext $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x00000000, size 0x0000001f
+ext $t0, $t1, 2, 6 :: rt 0x00000009 rs 0x31415927, pos 0x00000003, size 0x00000019
+INS
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0xffffffff, pos 0x00000002, size 0x00000006
+ins $t0, $t1, 2, 6 :: rt 0xffffffff rs 0xffffffff, pos 0x00000002, size 0x00000006
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0xffffffff, pos 0x0000001f, size 0x00000006
+ins $t0, $t1, 2, 6 :: rt 0x00000000 rs 0x00000000, pos 0x00000020, size 0x00000020
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0x0000ffff, pos 0x0000001f, size 0x00000000
+ins $t0, $t1, 2, 6 :: rt 0x000000fc rs 0x000000ff, pos 0x0000001f, size 0x00000000
+ins $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x0000001f, size 0x00000000
+ins $t0, $t1, 2, 6 :: rt 0x00000000 rs 0xf0000000, pos 0x00000000, size 0x0000001f
+ins $t0, $t1, 2, 6 :: rt 0x0000009c rs 0x31415927, pos 0x00000003, size 0x00000019
+LB
+lb $t0, 0($t1) :: rt 0x00000012
+lb $t0, 4($t1) :: rt 0x00000000
+lb $t0, 8($t1) :: rt 0x00000000
+lb $t0, 12($t1) :: rt 0xffffffff
+lb $t0, 16($t1) :: rt 0x00000023
+lb $t0, 20($t1) :: rt 0x00000024
+lb $t0, 24($t1) :: rt 0x00000025
+lb $t0, 28($t1) :: rt 0x00000026
+lb $t0, 32($t1) :: rt 0x0000003f
+lb $t0, 36($t1) :: rt 0x0000003e
+lb $t0, 40($t1) :: rt 0x00000036
+lb $t0, 44($t1) :: rt 0x0000003b
+lb $t0, 48($t1) :: rt 0x00000045
+lb $t0, 52($t1) :: rt 0x0000004e
+lb $t0, 56($t1) :: rt 0x00000047
+lb $t0, 60($t1) :: rt 0x0000004a
+lb $t0, 64($t1) :: rt 0x00000041
+lb $t0, 2($t1) :: rt 0x0000001e
+lb $t0, 6($t1) :: rt 0x00000000
+lb $t0, 10($t1) :: rt 0x00000000
+lb $t0, 14($t1) :: rt 0xffffffff
+lb $t0, 18($t1) :: rt 0x0000002e
+lb $t0, 22($t1) :: rt 0x0000002b
+lb $t0, 26($t1) :: rt 0x0000002e
+lb $t0, 30($t1) :: rt 0x0000002d
+lb $t0, 34($t1) :: rt 0x0000003f
+lb $t0, 38($t1) :: rt 0x0000003d
+LBU
+lbu $t0, 0($t1) :: rt 0x00000012
+lbu $t0, 4($t1) :: rt 0x00000000
+lbu $t0, 8($t1) :: rt 0x00000000
+lbu $t0, 12($t1) :: rt 0x000000ff
+lbu $t0, 16($t1) :: rt 0x00000023
+lbu $t0, 20($t1) :: rt 0x00000024
+lbu $t0, 24($t1) :: rt 0x00000025
+lbu $t0, 28($t1) :: rt 0x00000026
+lbu $t0, 32($t1) :: rt 0x0000003f
+lbu $t0, 36($t1) :: rt 0x0000003e
+lbu $t0, 40($t1) :: rt 0x00000036
+lbu $t0, 44($t1) :: rt 0x0000003b
+lbu $t0, 48($t1) :: rt 0x00000045
+lbu $t0, 52($t1) :: rt 0x0000004e
+lbu $t0, 56($t1) :: rt 0x00000047
+lbu $t0, 60($t1) :: rt 0x0000004a
+lbu $t0, 64($t1) :: rt 0x00000041
+lbu $t0, 2($t1) :: rt 0x0000001e
+lbu $t0, 6($t1) :: rt 0x00000000
+lbu $t0, 10($t1) :: rt 0x00000000
+lbu $t0, 14($t1) :: rt 0x000000ff
+lbu $t0, 18($t1) :: rt 0x0000002e
+lbu $t0, 22($t1) :: rt 0x0000002b
+lbu $t0, 26($t1) :: rt 0x0000002e
+lbu $t0, 30($t1) :: rt 0x0000002d
+lbu $t0, 34($t1) :: rt 0x0000003f
+lbu $t0, 38($t1) :: rt 0x0000003d
+LH
+lh $t0, 0($t1) :: rt 0x0000121f
+lh $t0, 4($t1) :: rt 0x00000000
+lh $t0, 8($t1) :: rt 0x00000000
+lh $t0, 12($t1) :: rt 0xffffffff
+lh $t0, 16($t1) :: rt 0x0000232f
+lh $t0, 20($t1) :: rt 0x0000242c
+lh $t0, 24($t1) :: rt 0x0000252a
+lh $t0, 28($t1) :: rt 0x0000262d
+lh $t0, 32($t1) :: rt 0x00003f34
+lh $t0, 36($t1) :: rt 0x00003e35
+lh $t0, 40($t1) :: rt 0x0000363a
+lh $t0, 44($t1) :: rt 0x00003b37
+lh $t0, 48($t1) :: rt 0x0000454f
+lh $t0, 52($t1) :: rt 0x00004e46
+lh $t0, 56($t1) :: rt 0x0000474d
+lh $t0, 60($t1) :: rt 0x00004a48
+lh $t0, 64($t1) :: rt 0x00004144
+lh $t0, 2($t1) :: rt 0x00001e1f
+lh $t0, 6($t1) :: rt 0x00000000
+lh $t0, 10($t1) :: rt 0x00000003
+lh $t0, 14($t1) :: rt 0xffffffff
+lh $t0, 18($t1) :: rt 0x00002e2f
+lh $t0, 22($t1) :: rt 0x00002b2b
+lh $t0, 26($t1) :: rt 0x00002e2b
+lh $t0, 30($t1) :: rt 0x00002d2a
+lh $t0, 34($t1) :: rt 0x00003f3e
+lh $t0, 38($t1) :: rt 0x00003d3c
+LHU
+lhu $t0, 0($t1) :: rt 0x0000121f
+lhu $t0, 4($t1) :: rt 0x00000000
+lhu $t0, 8($t1) :: rt 0x00000000
+lhu $t0, 12($t1) :: rt 0x0000ffff
+lhu $t0, 16($t1) :: rt 0x0000232f
+lhu $t0, 20($t1) :: rt 0x0000242c
+lhu $t0, 24($t1) :: rt 0x0000252a
+lhu $t0, 28($t1) :: rt 0x0000262d
+lhu $t0, 32($t1) :: rt 0x00003f34
+lhu $t0, 36($t1) :: rt 0x00003e35
+lhu $t0, 40($t1) :: rt 0x0000363a
+lhu $t0, 44($t1) :: rt 0x00003b37
+lhu $t0, 48($t1) :: rt 0x0000454f
+lhu $t0, 52($t1) :: rt 0x00004e46
+lhu $t0, 56($t1) :: rt 0x0000474d
+lhu $t0, 60($t1) :: rt 0x00004a48
+lhu $t0, 64($t1) :: rt 0x00004144
+lhu $t0, 2($t1) :: rt 0x00001e1f
+lhu $t0, 6($t1) :: rt 0x00000000
+lhu $t0, 10($t1) :: rt 0x00000003
+lhu $t0, 14($t1) :: rt 0x0000ffff
+lhu $t0, 18($t1) :: rt 0x00002e2f
+lhu $t0, 22($t1) :: rt 0x00002b2b
+lhu $t0, 26($t1) :: rt 0x00002e2b
+lhu $t0, 30($t1) :: rt 0x00002d2a
+lhu $t0, 34($t1) :: rt 0x00003f3e
+lhu $t0, 38($t1) :: rt 0x00003d3c
+LUI
+lui $t0, 0xffff :: rd 0xffff0000 rs 0x0000ffff
+lui $t0, 0xff00 :: rd 0xff000000 rs 0x0000ff00
+lui $t0, 0xff :: rd 0x00ff0000 rs 0x000000ff
+lui $t0, 0x0 :: rd 0x00000000 rs 0x00000000
+lui $t0, 0x5 :: rd 0x00050000 rs 0x00000005
+lui $t0, 0x387 :: rd 0x03870000 rs 0x00000387
+LW
+lw $t0, 0($t1) :: rt 0x121f1e1f
+lw $t0, 4($t1) :: rt 0x00000000
+lw $t0, 8($t1) :: rt 0x00000003
+lw $t0, 12($t1) :: rt 0xffffffff
+lw $t0, 16($t1) :: rt 0x232f2e2f
+lw $t0, 20($t1) :: rt 0x242c2b2b
+lw $t0, 24($t1) :: rt 0x252a2e2b
+lw $t0, 28($t1) :: rt 0x262d2d2a
+lw $t0, 32($t1) :: rt 0x3f343f3e
+lw $t0, 36($t1) :: rt 0x3e353d3c
+lw $t0, 40($t1) :: rt 0x363a3c3b
+lw $t0, 44($t1) :: rt 0x3b373b3a
+lw $t0, 48($t1) :: rt 0x454f4e45
+lw $t0, 52($t1) :: rt 0x4e464d46
+lw $t0, 56($t1) :: rt 0x474d474c
+lw $t0, 60($t1) :: rt 0x4a484a4c
+lw $t0, 64($t1) :: rt 0x41444400
+lw $t0, 2($t1) :: rt 0x1e1f0000
+lw $t0, 6($t1) :: rt 0x00000000
+lw $t0, 10($t1) :: rt 0x0003ffff
+lw $t0, 14($t1) :: rt 0xffff232f
+lw $t0, 18($t1) :: rt 0x2e2f242c
+lw $t0, 22($t1) :: rt 0x2b2b252a
+lw $t0, 26($t1) :: rt 0x2e2b262d
+lw $t0, 30($t1) :: rt 0x2d2a3f34
+lw $t0, 34($t1) :: rt 0x3f3e3e35
+lw $t0, 38($t1) :: rt 0x3d3c363a
+LWL
+lwl $t0, 0($t1) :: rt 0x121f1e1f
+lwl $t0, 4($t1) :: rt 0x00000000
+lwl $t0, 8($t1) :: rt 0x00000003
+lwl $t0, 12($t1) :: rt 0xffffffff
+lwl $t0, 16($t1) :: rt 0x232f2e2f
+lwl $t0, 20($t1) :: rt 0x242c2b2b
+lwl $t0, 24($t1) :: rt 0x252a2e2b
+lwl $t0, 28($t1) :: rt 0x262d2d2a
+lwl $t0, 32($t1) :: rt 0x3f343f3e
+lwl $t0, 36($t1) :: rt 0x3e353d3c
+lwl $t0, 40($t1) :: rt 0x363a3c3b
+lwl $t0, 44($t1) :: rt 0x3b373b3a
+lwl $t0, 48($t1) :: rt 0x454f4e45
+lwl $t0, 52($t1) :: rt 0x4e464d46
+lwl $t0, 56($t1) :: rt 0x474d474c
+lwl $t0, 60($t1) :: rt 0x4a484a4c
+lwl $t0, 64($t1) :: rt 0x41444400
+lwl $t0, 2($t1) :: rt 0x1e1f0000
+lwl $t0, 6($t1) :: rt 0x00000000
+lwl $t0, 10($t1) :: rt 0x00030000
+lwl $t0, 14($t1) :: rt 0xffff0000
+lwl $t0, 18($t1) :: rt 0x2e2f0000
+lwl $t0, 22($t1) :: rt 0x2b2b0000
+lwl $t0, 26($t1) :: rt 0x2e2b0000
+lwl $t0, 30($t1) :: rt 0x2d2a0000
+lwl $t0, 34($t1) :: rt 0x3f3e0000
+lwl $t0, 38($t1) :: rt 0x3d3c0000
+LWR
+lwr $t0, 0($t1) :: rt 0x00000012
+lwr $t0, 4($t1) :: rt 0x00000000
+lwr $t0, 8($t1) :: rt 0x00000000
+lwr $t0, 12($t1) :: rt 0x000000ff
+lwr $t0, 16($t1) :: rt 0x00000023
+lwr $t0, 20($t1) :: rt 0x00000024
+lwr $t0, 24($t1) :: rt 0x00000025
+lwr $t0, 28($t1) :: rt 0x00000026
+lwr $t0, 32($t1) :: rt 0x0000003f
+lwr $t0, 36($t1) :: rt 0x0000003e
+lwr $t0, 40($t1) :: rt 0x00000036
+lwr $t0, 44($t1) :: rt 0x0000003b
+lwr $t0, 48($t1) :: rt 0x00000045
+lwr $t0, 52($t1) :: rt 0x0000004e
+lwr $t0, 56($t1) :: rt 0x00000047
+lwr $t0, 60($t1) :: rt 0x0000004a
+lwr $t0, 64($t1) :: rt 0x00000041
+lwr $t0, 2($t1) :: rt 0x00121f1e
+lwr $t0, 6($t1) :: rt 0x00000000
+lwr $t0, 10($t1) :: rt 0x00000000
+lwr $t0, 14($t1) :: rt 0x00ffffff
+lwr $t0, 18($t1) :: rt 0x00232f2e
+lwr $t0, 22($t1) :: rt 0x00242c2b
+lwr $t0, 26($t1) :: rt 0x00252a2e
+lwr $t0, 30($t1) :: rt 0x00262d2d
+lwr $t0, 34($t1) :: rt 0x003f343f
+lwr $t0, 38($t1) :: rt 0x003e353d
+MADD
+madd $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x0000000c
+madd $t0, $t1 :: rs 0x00000055 rt 0x00000028 HI 0x00000000 LO 0x00000d48
+madd $t0, $t1 :: rs 0x00000018 rt 0x00000fff HI 0x00000000 LO 0x00017fe8
+madd $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+madd $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0xffffffff LO 0xffffffff
+madd $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0xffffffff LO 0xffffffff
+madd $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000000 LO 0x0000000c
+madd $t0, $t1 :: rs 0x00000356 rt 0x00000555 HI 0x00000000 LO 0x0011c98e
+MADDU
+maddu $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0x00000000 LO 0x0000000c
+maddu $t0, $t1 :: rs 0x00000055 rt 0x00000028 HI 0x00000000 LO 0x00000d48
+maddu $t0, $t1 :: rs 0x00000018 rt 0x00000fff HI 0x00000000 LO 0x00017fe8
+maddu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+maddu $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0xffffffff
+maddu $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000000 LO 0xffffffff
+maddu $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0x00000000 LO 0x0000000c
+maddu $t0, $t1 :: rs 0x00000356 rt 0x00000555 HI 0x00000000 LO 0x0011c98e
+MOVN
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xffffffff
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+movn $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+movn $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000001
+movn $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+MOVZ
+movz $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+movz $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xffffffff
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xee00ee00
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+movz $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000001
+movz $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+MSUB
+msub $t0, $t1 :: rs 0x00000006 rt 0x00000002 HI 0xffffffff LO 0xfffffff4
+msub $t0, $t1 :: rs 0x00000055 rt 0x00000028 HI 0xffffffff LO 0xfffff2b8
+msub $t0, $t1 :: rs 0x00000018 rt 0x00000fff HI 0xffffffff LO 0xfffe8018
+msub $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0xc0000000 LO 0xffffffff
+msub $t0, $t1 :: rs 0xffffffff rt 0x00000001 HI 0x00000000 LO 0x00000001
+msub $t0, $t1 :: rs 0x00000001 rt 0xffffffff HI 0x00000000 LO 0x00000001
+msub $t0, $t1 :: rs 0x00000002 rt 0x00000006 HI 0xffffffff LO 0xfffffff4
+msub $t0, $t1 :: rs 0x00000356 rt 0x00000555 HI 0xffffffff LO 0xffee3672
+MSUBU
+msubu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xcebea6d9 LO 0x31415927
+msubu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xd2351152 LO 0xfd1dbe00
+msubu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0xffffffff HI 0x80000000 LO 0x80000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0xc0000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0xc0000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x80800000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0xf9180000 LO 0x0dd00000
+msubu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xcebea6d9 LO 0x31415927
+msubu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xd2351152 LO 0xfd1dbe00
+msubu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000001 rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0x80000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0xc0000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+msubu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x80800000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0xf9180000 LO 0x0dd00000
+msubu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+msubu $t0, $t1 :: rs 0xffffffff rt 0xffffffff HI 0x00000001 LO 0xffffffff
+msubu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0xc0000000 LO 0xffffffff
+msubu $t0, $t1 :: rs 0x0000ffff rt 0x0000ffff HI 0xffffffff LO 0x0001ffff
+MUL
+mul $t0, $t1, $t2 :: rd 0xcebea6d9 rs 0x31415927, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x02e24200 rs 0x31415927, rt 0xee00ee00
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xff000000
+mul $t0, $t1, $t2 :: rd 0xf2300000 rs 0x7fffffff, rt 0x0dd00000
+mul $t0, $t1, $t2 :: rd 0xcebea6d9 rs 0x31415927, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x02e24200 rs 0x31415927, rt 0xee00ee00
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x80000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xff000000
+mul $t0, $t1, $t2 :: rd 0xf2300000 rs 0x7fffffff, rt 0x0dd00000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+mul $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0xffffffff
+mul $t0, $t1, $t2 :: rd 0x00000001 rs 0x7fffffff, rt 0x7fffffff
+mul $t0, $t1, $t2 :: rd 0xfffe0001 rs 0x0000ffff, rt 0x0000ffff
+MULT
+mult $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xffffffff LO 0xcebea6d9
+mult $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xfc899586 LO 0x02e24200
+mult $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0xffffffff HI 0x00000000 LO 0x80000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+mult $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x00800000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+mult $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0xffffffff LO 0xcebea6d9
+mult $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0xfc899586 LO 0x02e24200
+mult $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000001 rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0x80000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0xc0000000 LO 0x80000000
+mult $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x00800000 LO 0x00000000
+mult $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+mult $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+mult $t0, $t1 :: rs 0xffffffff rt 0xffffffff HI 0x00000000 LO 0x00000001
+mult $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+mult $t0, $t1 :: rs 0x0000ffff rt 0x0000ffff HI 0x00000000 LO 0xfffe0001
+MULTU
+multu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0x31415926 LO 0xcebea6d9
+multu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0x2dcaeead LO 0x02e24200
+multu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0xffffffff HI 0x7fffffff LO 0x80000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0x3fffffff LO 0x80000000
+multu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x7f800000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+multu $t0, $t1 :: rs 0x31415927 rt 0xffffffff HI 0x31415926 LO 0xcebea6d9
+multu $t0, $t1 :: rs 0x31415927 rt 0xee00ee00 HI 0x2dcaeead LO 0x02e24200
+multu $t0, $t1 :: rs 0x00000000 rt 0x000000ff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000001 rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x00000001 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0x80000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x80000000 rt 0x80000000 HI 0x40000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x80000000 HI 0x3fffffff LO 0x80000000
+multu $t0, $t1 :: rs 0x80000000 rt 0xff000000 HI 0x7f800000 LO 0x00000000
+multu $t0, $t1 :: rs 0x7fffffff rt 0x0dd00000 HI 0x06e7ffff LO 0xf2300000
+multu $t0, $t1 :: rs 0xffffffff rt 0x00000000 HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0x00000000 rt 0xffffffff HI 0x00000000 LO 0x00000000
+multu $t0, $t1 :: rs 0xffffffff rt 0xffffffff HI 0xfffffffe LO 0x00000001
+multu $t0, $t1 :: rs 0x7fffffff rt 0x7fffffff HI 0x3fffffff LO 0x00000001
+multu $t0, $t1 :: rs 0x0000ffff rt 0x0000ffff HI 0x00000000 LO 0xfffe0001
+NOR
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x00be00d8 rs 0x31415927, rt 0xee00ee00
+nor $t0, $t1, $t2 :: rd 0xffffff00 rs 0x00000000, rt 0x000000ff
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0xfffffffe rs 0x00000000, rt 0x00000001
+nor $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00ffffff rs 0x80000000, rt 0xff000000
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x0dd00000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x00be00d8 rs 0x31415927, rt 0xee00ee00
+nor $t0, $t1, $t2 :: rd 0xffffff00 rs 0x00000000, rt 0x000000ff
+nor $t0, $t1, $t2 :: rd 0xfffffffe rs 0x00000001, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0xfffffffe rs 0x00000000, rt 0x00000001
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x00000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+nor $t0, $t1, $t2 :: rd 0x00ffffff rs 0x80000000, rt 0xff000000
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x0dd00000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+nor $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x7fffffff
+nor $t0, $t1, $t2 :: rd 0xffff0000 rs 0x0000ffff, rt 0x0000ffff
+WSBH
+wsbh $t0, $t1 :: rd 0x00000200 rs 0x00000002
+wsbh $t0, $t1 :: rd 0x00002800 rs 0x00000028
+wsbh $t0, $t1 :: rd 0xfffffefe rs 0xfffffefe
+wsbh $t0, $t1 :: rd 0xff7fffff rs 0x7fffffff
+wsbh $t0, $t1 :: rd 0xfffff5ff rs 0xfffffff5
+wsbh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+wsbh $t0, $t1 :: rd 0x00001600 rs 0x00000016
+wsbh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+NOT
+not $t0, $t1 :: rd 0xfffffffd rs 0x00000002
+not $t0, $t1 :: rd 0xffffffd7 rs 0x00000028
+not $t0, $t1 :: rd 0x00000101 rs 0xfffffefe
+not $t0, $t1 :: rd 0x80000000 rs 0x7fffffff
+not $t0, $t1 :: rd 0x0000000a rs 0xfffffff5
+not $t0, $t1 :: rd 0x00000000 rs 0xffffffff
+not $t0, $t1 :: rd 0xffffffe9 rs 0x00000016
+not $t0, $t1 :: rd 0x00000000 rs 0xffffffff
+NEGU
+negu $t0, $t1 :: rd 0xfffffffe rs 0x00000002
+negu $t0, $t1 :: rd 0xffffffd8 rs 0x00000028
+negu $t0, $t1 :: rd 0x00000102 rs 0xfffffefe
+negu $t0, $t1 :: rd 0x80000001 rs 0x7fffffff
+negu $t0, $t1 :: rd 0x0000000b rs 0xfffffff5
+negu $t0, $t1 :: rd 0x00000001 rs 0xffffffff
+negu $t0, $t1 :: rd 0xffffffea rs 0x00000016
+negu $t0, $t1 :: rd 0x00000001 rs 0xffffffff
+OR
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x31415927, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0xff41ff27 rs 0x31415927, rt 0xee00ee00
+or $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+or $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x80000000, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xff000000 rs 0x80000000, rt 0xff000000
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x31415927, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0xff41ff27 rs 0x31415927, rt 0xee00ee00
+or $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+or $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+or $t0, $t1, $t2 :: rd 0xff000000 rs 0x80000000, rt 0xff000000
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+or $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x7fffffff
+or $t0, $t1, $t2 :: rd 0x0000ffff rs 0x0000ffff, rt 0x0000ffff
+ORI
+ori $t0, $t1, 0xffff :: rt 0x3141ffff rs 0x31415927, imm 0x0000ffff
+ori $t0, $t1, 0xee00 :: rt 0x3141ff27 rs 0x31415927, imm 0x0000ee00
+ori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+ori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+ori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+ori $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+ori $t0, $t1, 0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+ori $t0, $t1, 0x8000 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00008000
+ori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+ori $t0, $t1, 0x0dd0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000dd0
+ori $t0, $t1, 0xffff :: rt 0x3141ffff rs 0x31415927, imm 0x0000ffff
+ori $t0, $t1, 0xee00 :: rt 0x3141ff27 rs 0x31415927, imm 0x0000ee00
+ori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+ori $t0, $t1, 0 :: rt 0x00000001 rs 0x00000001, imm 0x00000000
+ori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+ori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x00008000 rs 0x00000000, imm 0x00008000
+ori $t0, $t1, 0 :: rt 0x00008000 rs 0x00008000, imm 0x00000000
+ori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+ori $t0, $t1, 0x8000 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00008000
+ori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+ori $t0, $t1, 0x0dd0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000dd0
+ori $t0, $t1, 0 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+ori $t0, $t1, 0xffff :: rt 0x0000ffff rs 0x00000000, imm 0x0000ffff
+ori $t0, $t1, 0xffff :: rt 0xffffffff rs 0xffffffff, imm 0x0000ffff
+ori $t0, $t1, 0x7fff :: rt 0x7fffffff rs 0x7fffffff, imm 0x00007fff
+ori $t0, $t1, 0x0000 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+ROTR
+rotr $t0, $t1, 0x00000000 :: rt 0x31415927 rs 0x31415927, imm 0x00000000
+rotr $t0, $t1, 0x00000001 :: rt 0x98a0ac93 rs 0x31415927, imm 0x00000001
+rotr $t0, $t1, 0x00000002 :: rt 0xcc505649 rs 0x31415927, imm 0x00000002
+rotr $t0, $t1, 0x0000000F :: rt 0xb24e6282 rs 0x31415927, imm 0x0000000f
+rotr $t0, $t1, 0x00000010 :: rt 0x59273141 rs 0x31415927, imm 0x00000010
+rotr $t0, $t1, 0x0000001F :: rt 0x6282b24e rs 0x31415927, imm 0x0000001f
+rotr $t0, $t1, 0x00000020 :: rt 0x31415927 rs 0x31415927, imm 0x00000020
+rotr $t0, $t1, 0x00000021 :: rt 0x98a0ac93 rs 0x31415927, imm 0x00000021
+rotr $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x00000000
+rotr $t0, $t1, 0x00000001 :: rt 0x00044000 rs 0x00088000, imm 0x00000001
+rotr $t0, $t1, 31 :: rt 0x00110000 rs 0x00088000, imm 0x0000001f
+rotr $t0, $t1, 16 :: rt 0x00000001 rs 0x00010000, imm 0x00000010
+rotr $t0, $t1, 17 :: rt 0x80000000 rs 0x00010000, imm 0x00000011
+rotr $t0, $t1, 18 :: rt 0x40000000 rs 0x00010000, imm 0x00000012
+rotr $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+rotr $t0, $t1, 0xffff :: rt 0x0001fffe rs 0x0000ffff, imm 0x0000ffff
+ROTRV
+rotrv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+rotrv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+rotrv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+rotrv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+rotrv $t0, $t1, $t2 :: rd 0xfffffffe rs 0x7fffffff, rt 0x7fffffff
+rotrv $t0, $t1, $t2 :: rd 0x0001fffe rs 0x0000ffff, rt 0x0000ffff
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x98a0ac93 rs 0x31415927, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0xcc505649 rs 0x31415927, rt 0x00000002
+rotrv $t0, $t1, $t2 :: rd 0xb24e6282 rs 0x31415927, rt 0x0000000f
+rotrv $t0, $t1, $t2 :: rd 0x59273141 rs 0x31415927, rt 0x00000010
+rotrv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0x0000001f
+rotrv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+rotrv $t0, $t1, $t2 :: rd 0x98a0ac93 rs 0x31415927, rt 0x00000021
+rotrv $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x00044000 rs 0x00088000, rt 0x00000001
+rotrv $t0, $t1, $t2 :: rd 0x00110000 rs 0x00088000, rt 0x0000001f
+rotrv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00010000, rt 0x00000010
+rotrv $t0, $t1, $t2 :: rd 0x80000000 rs 0x00010000, rt 0x00000011
+rotrv $t0, $t1, $t2 :: rd 0x40000000 rs 0x00010000, rt 0x00000012
+rotrv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+rotrv $t0, $t1, $t2 :: rd 0x0001fffe rs 0x0000ffff, rt 0x0000ffff
+SEB
+seb $t0, $t1 :: rd 0x00000002 rs 0x00000002
+seb $t0, $t1 :: rd 0x00000028 rs 0x00000028
+seb $t0, $t1 :: rd 0xfffffffe rs 0xfffffefe
+seb $t0, $t1 :: rd 0xffffffff rs 0x7fffffff
+seb $t0, $t1 :: rd 0xfffffff5 rs 0xfffffff5
+seb $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+seb $t0, $t1 :: rd 0x00000016 rs 0x00000016
+seb $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+SEH
+seh $t0, $t1 :: rd 0x00000002 rs 0x00000002
+seh $t0, $t1 :: rd 0x00000028 rs 0x00000028
+seh $t0, $t1 :: rd 0xfffffefe rs 0xfffffefe
+seh $t0, $t1 :: rd 0xffffffff rs 0x7fffffff
+seh $t0, $t1 :: rd 0xfffffff5 rs 0xfffffff5
+seh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+seh $t0, $t1 :: rd 0x00000016 rs 0x00000016
+seh $t0, $t1 :: rd 0xffffffff rs 0xffffffff
+SLL
+sll $t0, $t1, 0x00000000 :: rt 0x31415927 rs 0x31415927, imm 0x00000000
+sll $t0, $t1, 0x00000001 :: rt 0x6282b24e rs 0x31415927, imm 0x00000001
+sll $t0, $t1, 0x00000002 :: rt 0xc505649c rs 0x31415927, imm 0x00000002
+sll $t0, $t1, 0x0000000F :: rt 0xac938000 rs 0x31415927, imm 0x0000000f
+sll $t0, $t1, 0x00000010 :: rt 0x59270000 rs 0x31415927, imm 0x00000010
+sll $t0, $t1, 0x0000001F :: rt 0x80000000 rs 0x31415927, imm 0x0000001f
+sll $t0, $t1, 0x00000009 :: rt 0x82b24e00 rs 0x31415927, imm 0x00000009
+sll $t0, $t1, 0x0000000A :: rt 0x05649c00 rs 0x31415927, imm 0x0000000a
+sll $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x00000000
+sll $t0, $t1, 0x00000001 :: rt 0x00110000 rs 0x00088000, imm 0x00000001
+sll $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+sll $t0, $t1, 16 :: rt 0x00000000 rs 0x00010000, imm 0x00000010
+sll $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+sll $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+sll $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SLLV
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x31415927, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+sllv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x31415927, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+sllv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+sllv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+sllv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0xffffffff, rt 0xffffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x7fffffff, rt 0x7fffffff
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x0000ffff, rt 0x0000ffff
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0xc505649c rs 0x31415927, rt 0x00000002
+sllv $t0, $t1, $t2 :: rd 0xac938000 rs 0x31415927, rt 0x0000000f
+sllv $t0, $t1, $t2 :: rd 0x59270000 rs 0x31415927, rt 0x00000010
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x31415927, rt 0x0000001f
+sllv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+sllv $t0, $t1, $t2 :: rd 0x6282b24e rs 0x31415927, rt 0x00000021
+sllv $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x00110000 rs 0x00088000, rt 0x00000001
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000010
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+sllv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sllv $t0, $t1, $t2 :: rd 0x80000000 rs 0x0000ffff, rt 0x0000ffff
+SLT
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xee00ee00
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xee00ee00
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+slt $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000002
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000000f
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000010
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000020
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000021
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000001
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000010
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+slt $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SLTI
+slti $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00000001, imm 0x31415927
+slti $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x31415927, imm 0x00000001
+slti $t0, $t1, 0x00000002 :: rt 0x00000000 rs 0x31415927, imm 0x00000002
+slti $t0, $t1, 0x0000000F :: rt 0x00000000 rs 0x31415927, imm 0x0000000f
+slti $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+slti $t0, $t1, 0x0000001F :: rt 0x00000001 rs 0x00000010, imm 0x31415927
+slti $t0, $t1, 0x00000009 :: rt 0x00000000 rs 0x31415927, imm 0x00000009
+slti $t0, $t1, 0x0000000A :: rt 0x00000000 rs 0x31415927, imm 0x0000000a
+slti $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00088000, imm 0x0000000a
+slti $t0, $t1, 0x00000001 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+slti $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+slti $t0, $t1, 16 :: rt 0x00000000 rs 0x00010000, imm 0x00000010
+slti $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+slti $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+slti $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SLTIU
+sltiu $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00000001, imm 0x31415927
+sltiu $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x31415927, imm 0x00000001
+sltiu $t0, $t1, 0x00000002 :: rt 0x00000000 rs 0x31415927, imm 0x00000002
+sltiu $t0, $t1, 0x0000000F :: rt 0x00000000 rs 0x31415927, imm 0x0000000f
+sltiu $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+sltiu $t0, $t1, 0x0000001F :: rt 0x00000001 rs 0x00000010, imm 0x31415927
+sltiu $t0, $t1, 0x00000009 :: rt 0x00000000 rs 0x31415927, imm 0x00000009
+sltiu $t0, $t1, 0x0000000A :: rt 0x00000000 rs 0x31415927, imm 0x0000000a
+sltiu $t0, $t1, 0x00000000 :: rt 0x00000000 rs 0x00088000, imm 0x0000000a
+sltiu $t0, $t1, 0x00000001 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+sltiu $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+sltiu $t0, $t1, 16 :: rt 0x00000000 rs 0x00010000, imm 0x00000010
+sltiu $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+sltiu $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+sltiu $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SLTU
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xee00ee00
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x7fffffff, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x31415927, rt 0xee00ee00
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x000000ff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x7fffffff, rt 0x80000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xff000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x0dd00000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000002
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000000f
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000010
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000020
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x00000021
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x00000001
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000010
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+sltu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SRA
+sra $t0, $t1, 0x00000000 :: rt 0x00000001 rs 0x00000001, imm 0x31415927
+sra $t0, $t1, 0x00000001 :: rt 0x18a0ac93 rs 0x31415927, imm 0x00000001
+sra $t0, $t1, 0x00000002 :: rt 0x0c505649 rs 0x31415927, imm 0x00000002
+sra $t0, $t1, 0x0000000F :: rt 0x00006282 rs 0x31415927, imm 0x0000000f
+sra $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+sra $t0, $t1, 0x0000001F :: rt 0x00000000 rs 0x00000010, imm 0x31415927
+sra $t0, $t1, 0x00000009 :: rt 0x0018a0ac rs 0x31415927, imm 0x00000009
+sra $t0, $t1, 0x0000000A :: rt 0x000c5056 rs 0x31415927, imm 0x0000000a
+sra $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x0000000a
+sra $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x00000000, imm 0x00000001
+sra $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+sra $t0, $t1, 16 :: rt 0x00000001 rs 0x00010000, imm 0x00000010
+sra $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+sra $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+sra $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SRAV
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0x80000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srav $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srav $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srav $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0xffffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0x0c505649 rs 0x31415927, rt 0x00000002
+srav $t0, $t1, $t2 :: rd 0x00006282 rs 0x31415927, rt 0x0000000f
+srav $t0, $t1, $t2 :: rd 0x00003141 rs 0x31415927, rt 0x00000010
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+srav $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+srav $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000021
+srav $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00044000 rs 0x00088000, rt 0x00000001
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+srav $t0, $t1, $t2 :: rd 0x00000001 rs 0x00010000, rt 0x00000010
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srav $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SRL
+srl $t0, $t1, 0x00000000 :: rt 0x00000001 rs 0x00000001, imm 0x31415927
+srl $t0, $t1, 0x00000001 :: rt 0x18a0ac93 rs 0x31415927, imm 0x00000001
+srl $t0, $t1, 0x00000002 :: rt 0x0c505649 rs 0x31415927, imm 0x00000002
+srl $t0, $t1, 0x0000000F :: rt 0x00006282 rs 0x31415927, imm 0x0000000f
+srl $t0, $t1, 0x00000010 :: rt 0x00000000 rs 0x00000010, imm 0x00000010
+srl $t0, $t1, 0x0000001F :: rt 0x00000000 rs 0x00000010, imm 0x31415927
+srl $t0, $t1, 0x00000009 :: rt 0x0018a0ac rs 0x31415927, imm 0x00000009
+srl $t0, $t1, 0x0000000A :: rt 0x000c5056 rs 0x31415927, imm 0x0000000a
+srl $t0, $t1, 0x00000000 :: rt 0x00088000 rs 0x00088000, imm 0x0000000a
+srl $t0, $t1, 0x00000001 :: rt 0x00000000 rs 0x00000000, imm 0x00000001
+srl $t0, $t1, 31 :: rt 0x00000000 rs 0x00088000, imm 0x0000001f
+srl $t0, $t1, 16 :: rt 0x00000001 rs 0x00010000, imm 0x00000010
+srl $t0, $t1, 17 :: rt 0x00000000 rs 0x00010000, imm 0x00000011
+srl $t0, $t1, 18 :: rt 0x00000000 rs 0x00010000, imm 0x00000012
+srl $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+SRLV
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xee00ee00
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x80000000
+srlv $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000
+srlv $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x0dd00000
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srlv $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0xffffffff, rt 0xffffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0x0c505649 rs 0x31415927, rt 0x00000002
+srlv $t0, $t1, $t2 :: rd 0x00006282 rs 0x31415927, rt 0x0000000f
+srlv $t0, $t1, $t2 :: rd 0x00003141 rs 0x31415927, rt 0x00000010
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x31415927, rt 0x0000001f
+srlv $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000020
+srlv $t0, $t1, $t2 :: rd 0x18a0ac93 rs 0x31415927, rt 0x00000021
+srlv $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00044000 rs 0x00088000, rt 0x00000001
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00088000, rt 0x0000001f
+srlv $t0, $t1, $t2 :: rd 0x00000001 rs 0x00010000, rt 0x00000010
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000011
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00010000, rt 0x00000012
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+srlv $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SUBU
+subu $t0, $t1, $t2 :: rd 0x31415926 rs 0x31415927, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x31414817 rs 0x31415927, rt 0x00001110
+subu $t0, $t1, $t2 :: rd 0xffffff01 rs 0x00000000, rt 0x000000ff
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x80000001 rs 0x80000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x81000000 rs 0x80000000, rt 0xff000000
+subu $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+subu $t0, $t1, $t2 :: rd 0x31415928 rs 0x31415927, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x43406b27 rs 0x31415927, rt 0xee00ee00
+subu $t0, $t1, $t2 :: rd 0xffffff01 rs 0x00000000, rt 0x000000ff
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x81000000 rs 0x80000000, rt 0xff000000
+subu $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+subu $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x31415926 rs 0x31415927, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x31415925 rs 0x31415927, rt 0x00000002
+subu $t0, $t1, $t2 :: rd 0x31415918 rs 0x31415927, rt 0x0000000f
+subu $t0, $t1, $t2 :: rd 0x31415917 rs 0x31415927, rt 0x00000010
+subu $t0, $t1, $t2 :: rd 0x31415908 rs 0x31415927, rt 0x0000001f
+subu $t0, $t1, $t2 :: rd 0x31415907 rs 0x31415927, rt 0x00000020
+subu $t0, $t1, $t2 :: rd 0x31415906 rs 0x31415927, rt 0x00000021
+subu $t0, $t1, $t2 :: rd 0x00088000 rs 0x00088000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00087fff rs 0x00088000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0x00087fe1 rs 0x00088000, rt 0x0000001f
+subu $t0, $t1, $t2 :: rd 0x0000fff0 rs 0x00010000, rt 0x00000010
+subu $t0, $t1, $t2 :: rd 0x0000ffef rs 0x00010000, rt 0x00000011
+subu $t0, $t1, $t2 :: rd 0x0000ffee rs 0x00010000, rt 0x00000012
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+SUB
+subu $t0, $t1, $t2 :: rd 0x31415928 rs 0x31415927, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x0a2941ff rs 0x31415927, rt 0x27181728
+subu $t0, $t1, $t2 :: rd 0x9a2941ff rs 0x31415927, rt 0x97181728
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0x00000001
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0xffffffff
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+subu $t0, $t1, $t2 :: rd 0x00000001 rs 0x80000000, rt 0x7fffffff
+subu $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+XOR
+xor $t0, $t1, $t2 :: rd 0xcebea6d8 rs 0x31415927, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0xdf41b727 rs 0x31415927, rt 0xee00ee00
+xor $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x80000000, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x7fffffff rs 0x7fffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x7f000000 rs 0x80000000, rt 0xff000000
+xor $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+xor $t0, $t1, $t2 :: rd 0xcebea6d8 rs 0x31415927, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0xdf41b727 rs 0x31415927, rt 0xee00ee00
+xor $t0, $t1, $t2 :: rd 0x000000ff rs 0x00000000, rt 0x000000ff
+xor $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000
+xor $t0, $t1, $t2 :: rd 0x7f000000 rs 0x80000000, rt 0xff000000
+xor $t0, $t1, $t2 :: rd 0x722fffff rs 0x7fffffff, rt 0x0dd00000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000
+xor $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0xffffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x7fffffff
+xor $t0, $t1, $t2 :: rd 0x00000000 rs 0x0000ffff, rt 0x0000ffff
+XORI
+xori $t0, $t1, 0xffff :: rt 0x3141a6d8 rs 0x31415927, imm 0x0000ffff
+xori $t0, $t1, 0xee00 :: rt 0x3141b727 rs 0x31415927, imm 0x0000ee00
+xori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+xori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+xori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+xori $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+xori $t0, $t1, 0 :: rt 0x7fffffff rs 0x7fffffff, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+xori $t0, $t1, 0x8000 :: rt 0x7fff7fff rs 0x7fffffff, imm 0x00008000
+xori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+xori $t0, $t1, 0x0dd0 :: rt 0x7ffff22f rs 0x7fffffff, imm 0x00000dd0
+xori $t0, $t1, 0xffff :: rt 0x3141a6d8 rs 0x31415927, imm 0x0000ffff
+xori $t0, $t1, 0xee00 :: rt 0x3141b727 rs 0x31415927, imm 0x0000ee00
+xori $t0, $t1, 255 :: rt 0x000000ff rs 0x00000000, imm 0x000000ff
+xori $t0, $t1, 0 :: rt 0x00000001 rs 0x00000001, imm 0x00000000
+xori $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001
+xori $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x00008000 rs 0x00000000, imm 0x00008000
+xori $t0, $t1, 0 :: rt 0x00008000 rs 0x00008000, imm 0x00000000
+xori $t0, $t1, 0x8000 :: rt 0x80008000 rs 0x80000000, imm 0x00008000
+xori $t0, $t1, 0x8000 :: rt 0x7fff7fff rs 0x7fffffff, imm 0x00008000
+xori $t0, $t1, 0xff00 :: rt 0x8000ff00 rs 0x80000000, imm 0x0000ff00
+xori $t0, $t1, 0x0dd0 :: rt 0x7ffff22f rs 0x7fffffff, imm 0x00000dd0
+xori $t0, $t1, 0 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+xori $t0, $t1, 0xffff :: rt 0x0000ffff rs 0x00000000, imm 0x0000ffff
+xori $t0, $t1, 0xffff :: rt 0xffff0000 rs 0xffffffff, imm 0x0000ffff
+xori $t0, $t1, 0x7fff :: rt 0x7fff8000 rs 0x7fffffff, imm 0x00007fff
+xori $t0, $t1, 0x0000 :: rt 0x0000ffff rs 0x0000ffff, imm 0x00000000
+MFHI MFLO
+mfhi mflo :: HI: 0x31415927, LO: 0x31415926
+mfhi mflo :: HI: 0x0, LO: 0xffffffff
+mfhi mflo :: HI: 0xffffffff, LO: 0xfffffffe
+mfhi mflo :: HI: 0xffffffff, LO: 0xfffffffe
+mfhi mflo :: HI: 0x8000, LO: 0x7fff
+mfhi mflo :: HI: 0x80000000, LO: 0x7fffffff
+mfhi mflo :: HI: 0xffff, LO: 0xfffe
+mfhi mflo :: HI: 0x7fff, LO: 0x7ffe
+mfhi mflo :: HI: 0xdd0, LO: 0xdcf
+mfhi mflo :: HI: 0xff00, LO: 0xfeff
--- /dev/null
+prog: MIPS32int
+vgopts: -q
--- /dev/null
+
+include $(top_srcdir)/Makefile.tool-tests.am
+
+dist_noinst_SCRIPTS = filter_stderr
+
+EXTRA_DIST = \
+ branches.stdout.exp branches.stderr.exp branches.vgtest \
+ FPUarithmetic.stdout.exp FPUarithmetic.stderr.exp FPUarithmetic.vgtest \
+ LoadStore.stdout.exp LoadStore.stdout.exp-BE LoadStore.stderr.exp \
+ LoadStore.vgtest \
+ LoadStore1.stdout.exp LoadStore1.stdout.exp-LE LoadStore1.stderr.exp \
+ LoadStore1.vgtest \
+ MemCpyTest.stdout.exp MemCpyTest.stderr.exp MemCpyTest.vgtest \
+ MIPS32int.stdout.exp MIPS32int.stdout.exp-BE MIPS32int.stderr.exp \
+ MIPS32int.vgtest \
+ MoveIns.stdout.exp MoveIns.stdout.exp-BE MoveIns.stderr.exp MoveIns.vgtest \
+ round.stdout.exp round.stderr.exp round.vgtest \
+ vfp.stdout.exp vfp.stdout.exp-BE vfp.stderr.exp vfp.vgtest
+
+check_PROGRAMS = \
+ allexec \
+ branches \
+ FPUarithmetic \
+ LoadStore \
+ LoadStore1 \
+ MemCpyTest \
+ MIPS32int \
+ MoveIns \
+ round \
+ vfp
+
+AM_CFLAGS += @FLAG_M32@
+AM_CXXFLAGS += @FLAG_M32@
+AM_CCASFLAGS += @FLAG_M32@
+
+allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
--- /dev/null
+#include <stdio.h>
+
+unsigned int mem1[] = {
+ 0x0485b210, 0x0485b190, 0x0485b1b0, 0x0485b260,
+ 0x0485b280, 0x0485b400, 0x0485b420, 0x0485b2f0,
+ 0x0485b300, 0x0485b3c0, 0x0485b3d0, 0x0485b470,
+ 0x0485b490, 0x048608b0, 0x048608a0, 0x048601f0,
+ 0x0485f240, 0x0485f1b0, 0x04860020, 0x0485f4d0,
+ 0x0485fb00, 0x048607b0, 0x04860470, 0x04860440,
+ 0x048606c0, 0x048604b0, 0x048605b0, 0x0485ac10,
+ 0x0485a570, 0x0485ac90, 0x0485ae60, 0x0485bc10,
+ 0x0485ba70, 0x0485c384, 0x0485df30, 0x0485ac00,
+ 0x04861560, 0x04861680, 0x04863700, 0x048617dc,
+ 0x0485e0d0, 0x0485e6a0, 0x0485ee80, 0x04860e10,
+ 0x04860f20, 0x04860fd0, 0x04863300, 0x04863378,
+ 0x0487b000, 0x04863490, 0x04858648, 0x0485810c,
+ 0x04868eb0, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x0487b010, 0x0487b010, 0x0487b018,
+ 0x0487b018, 0xffffffff, 0xffffffff, 0x00000000,
+ 0x00000000, 0x04019280, 0x84024238, 0x048572d0,
+ 0x04883000, 0x0487b2cc, 0x0487af24, 0x04873000,
+ 0x04853000, 0x04863000, 0x0487b2d8, 0x0487d340,
+ 0x048665b0, 0x0487b2dc, 0x0487b2d0, 0x0487b2e8,
+ 0x0485c384, 0x0485df30, 0x04857eb0, 0x048589f8,
+ 0x048587e0, 0x0487b2fc, 0x048579c0, 0x0487b2f0,
+ 0x0487b2e4, 0x0487b2d4, 0x04863490, 0x04868ef0,
+ 0x04858c2c, 0x0487b000, 0x048639a0, 0x0487b340,
+ 0x04858d68, 0x04858648, 0x04858f18, 0x04857978
+};
+
+unsigned int mem2[100];
+
+int main ()
+{
+ int i, out;
+ for (i = 0; i < 100; i++)
+ mem2[i] = 0;
+
+ __asm__ volatile(
+ "move $s0, %1\n\t" // s0 addr mem1
+ "move $a2, %2\n\t" // a2 addr mem2
+ " li $v0, 0\n\t" // v0 counter
+ " li $a1, 0x190\n\t" // a1 mem len
+ " begin:\n\t"
+ "addu $v1, $s0, $v0\n\t"
+ "lw $a0, 0($v1)\n\t"
+ "addu $v1, $a2, $v0\n\t"
+ "addiu $v0, $v0, 4\n\t"
+ "sw $a0, 0($v1)\n\t"
+ "bne $v0, $a1, begin\n\t"
+ : "=&r" (out)
+ : "r" (mem1), "r" (mem2)
+ : "s0", "a1", "a2", "v0", "v1", "cc", "memory"
+ );
+ for (i = 0; i < 100; i = i+4)
+ printf("0x%x, 0x%x, 0x%x, 0x%x\n", mem2[i], mem2[i+1], mem2[i+2], mem2[i+3]);
+}
--- /dev/null
+0x485b210, 0x485b190, 0x485b1b0, 0x485b260
+0x485b280, 0x485b400, 0x485b420, 0x485b2f0
+0x485b300, 0x485b3c0, 0x485b3d0, 0x485b470
+0x485b490, 0x48608b0, 0x48608a0, 0x48601f0
+0x485f240, 0x485f1b0, 0x4860020, 0x485f4d0
+0x485fb00, 0x48607b0, 0x4860470, 0x4860440
+0x48606c0, 0x48604b0, 0x48605b0, 0x485ac10
+0x485a570, 0x485ac90, 0x485ae60, 0x485bc10
+0x485ba70, 0x485c384, 0x485df30, 0x485ac00
+0x4861560, 0x4861680, 0x4863700, 0x48617dc
+0x485e0d0, 0x485e6a0, 0x485ee80, 0x4860e10
+0x4860f20, 0x4860fd0, 0x4863300, 0x4863378
+0x487b000, 0x4863490, 0x4858648, 0x485810c
+0x4868eb0, 0x1, 0x0, 0x0
+0x0, 0x487b010, 0x487b010, 0x487b018
+0x487b018, 0xffffffff, 0xffffffff, 0x0
+0x0, 0x4019280, 0x84024238, 0x48572d0
+0x4883000, 0x487b2cc, 0x487af24, 0x4873000
+0x4853000, 0x4863000, 0x487b2d8, 0x487d340
+0x48665b0, 0x487b2dc, 0x487b2d0, 0x487b2e8
+0x485c384, 0x485df30, 0x4857eb0, 0x48589f8
+0x48587e0, 0x487b2fc, 0x48579c0, 0x487b2f0
+0x487b2e4, 0x487b2d4, 0x4863490, 0x4868ef0
+0x4858c2c, 0x487b000, 0x48639a0, 0x487b340
+0x4858d68, 0x4858648, 0x4858f18, 0x4857978
--- /dev/null
+prog: MemCpyTest
+vgopts: -q
--- /dev/null
+#include <stdio.h>
+
+const float fs_f[] = {
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76,
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04
+};
+
+unsigned int mem[] = {
+ 0x4095A266, 0x66666666,
+ 0xBFF00000, 0x00000000,
+ 0x3FF00000, 0x00000000,
+ 0x252a2e2b, 0x262d2d2a,
+ 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x41D26580, 0xB487E5C9,
+ 0x42026580, 0xB750E388,
+ 0x3E45798E, 0xE2308C3A,
+ 0x3FBF9ADD, 0x3746F65F
+};
+
+// mfc1 rt, fs
+#define TESTINSNMOVE(instruction, offset, FS, RT) \
+{ \
+ float out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "lwc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.s %0, $" #FS"\n\t" \
+ "move %1, $" #RT "\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (mem) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: fs %f, rt 0x%x\n", \
+ instruction, out, out1); \
+}
+
+// mfhc1 rt, fs
+#define TESTINSNMOVEd(instruction, offset, FS, RT) \
+{ \
+ double out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "ldc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #FS"\n\t" \
+ "move %1, $" #RT "\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (mem) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: fs %lf, rt 0x%x\n", \
+ instruction, out, out1); \
+}
+
+// mtc1 rt, fs
+#define TESTINSNMOVEt(instruction, offset, FS, RT) \
+{ \
+ float out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "lw $" #RT ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.s %0, $" #FS"\n\t" \
+ "move %1, $" #RT "\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (mem) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: fs %f, rt 0x%x\n", \
+ instruction, out, out1); \
+}
+
+// mthc1 rt, fs
+#define TESTINSNMOVEtd(instruction, offset, FS, RT) \
+{ \
+ double out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "lw $" #RT ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #FS"\n\t" \
+ "move %1, $" #RT "\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (mem) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: fs %lf, rt 0x%x\n", \
+ instruction, out, out1); \
+}
+
+// mov.s fd, fs
+#define TESTINSNMOVE1s(instruction, offset, FD, FS) \
+{ \
+ float out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "lwc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.s %0, $" #FD"\n\t" \
+ "mfc1 %1, $" #FD"\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (fs_f) \
+ : "cc", "memory" \
+ ); \
+ printf("%s :: fs %f, rt 0x%x\n", \
+ instruction, out, out1); \
+}
+
+// mov.d fd, fs
+#define TESTINSNMOVE1d(instruction, offset, FD, FS) \
+{ \
+ double out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "ldc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #FD"\n\t" \
+ "mfc1 %1, $" #FD"\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (fs_f) \
+ : "cc", "memory" \
+ ); \
+ printf("%s ::fs %f, rt 0x%x\n", \
+ instruction, out, out1); \
+}
+
+// movf rd, rs
+#define TESTINSNMOVE2(instruction, RDval, RSval, RD, RS, cc) \
+{ \
+ int out; \
+ __asm__ volatile( \
+ "li $t0, 1\n\t" \
+ "move $t1, %3\n\t" \
+ "mtc1 $t0, $f0\n\t" \
+ "mtc1 $t1, $f2\n\t" \
+ "c.eq.s $f0, $f2\n\t" \
+ "move $" #RS ", %1\n\t" \
+ "move $" #RD ", %2\n\t" \
+ instruction "\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RDval), "r" (cc) \
+ : "t0", "t1", #RD, #RS, "cc", "memory" \
+ ); \
+ printf("%s :: out: 0x%x, RDval: 0x%x, RSval: 0x%x, cc: %d\n", \
+ instruction, out, RDval, RSval, cc); \
+}
+
+// movf.s fd, fs
+#define TESTINSNMOVE2s(instruction, FD, FS, cc, offset) \
+{ \
+ float out; \
+ __asm__ volatile( \
+ "li $t0, 1\n\t" \
+ "move $t1, %1\n\t" \
+ "mtc1 $t0, $f0\n\t" \
+ "mtc1 $t1, $f2\n\t" \
+ "c.eq.s $f0, $f2\n\t" \
+ "move $t0, %2\n\t" \
+ "lwc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.s %0, $" #FD"\n\t" \
+ : "=&f" (out) \
+ : "r" (cc), "r" (fs_f) \
+ : "t0", "t1", "cc", "memory" \
+ ); \
+ printf("%s :: out: %f, cc: %d\n", \
+ instruction, out, cc); \
+}
+
+// movf.d fd, fs
+#define TESTINSNMOVE2d(instruction, FD, FS, cc, offset) \
+{ \
+ double out; \
+ int out1; \
+ int out2; \
+ __asm__ volatile( \
+ "li $t0, 1\n\t" \
+ "move $t1, %3\n\t" \
+ "mtc1 $t0, $f0\n\t" \
+ "mtc1 $t1, $f2\n\t" \
+ "c.eq.s $f0, $f2\n\t" \
+ "move $t0, %4\n\t" \
+ "ldc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #FD"\n\t" \
+ "mfc1 %1, $f4\n\t" \
+ "mfc1 %2, $f5\n\t" \
+ : "=&f" (out), "=&r" (out1), "=&r" (out2) \
+ : "r" (cc), "r" (mem) \
+ : "t0", "t1", "cc", "memory" \
+ ); \
+ printf("%s :: out: 0x%x 0x%x, cc: %d\n", \
+ instruction, out1, out2, cc); \
+}
+
+// movn.s fd, fs, rt
+#define TESTINSNMOVEN1s(instruction, offset, RTval, FD, FS, RT) \
+{ \
+ float out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $" #RT ", %3\n\t" \
+ "move $t0, %2\n\t" \
+ "lwc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.s %0, $" #FD"\n\t" \
+ "mfc1 %1, $" #FD"\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (fs_f), "r" (RTval) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: fs rt 0x%x\n", \
+ instruction, out1); \
+}
+
+// movn.d fd, fs, rt
+#define TESTINSNMOVEN1d(instruction, offset, RTval, FD, FS, RT) \
+{ \
+ double out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $" #RT ", %3\n\t" \
+ "move $t0, %2\n\t" \
+ "ldc1 $" #FS ", "#offset"($t0)\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #FD"\n\t" \
+ "mfc1 %1, $" #FD"\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (fs_f), "r" (RTval) \
+ : #RT, "cc", "memory" \
+ ); \
+ printf("%s :: fs %lf, rt 0x%x\n", \
+ instruction, out, out1); \
+}
+
+int main()
+{
+ printf("MFC1\n");
+ TESTINSNMOVE("mfc1 $t1, $f0", 0, f0, t1);
+ TESTINSNMOVE("mfc1 $t2, $f1", 4, f1, t2);
+ TESTINSNMOVE("mfc1 $t3, $f2", 8, f2, t3);
+ TESTINSNMOVE("mfc1 $t4, $f3", 12, f3, t4);
+ TESTINSNMOVE("mfc1 $t5, $f4", 16, f4, t5);
+ TESTINSNMOVE("mfc1 $t6, $f5", 20, f5, t6);
+ TESTINSNMOVE("mfc1 $t7, $f6", 24, f6, t7);
+ TESTINSNMOVE("mfc1 $v0, $f7", 28, f7, v0);
+ TESTINSNMOVE("mfc1 $v1, $f8", 32, f8, v1);
+ TESTINSNMOVE("mfc1 $s0, $f9", 36, f9, s0);
+ TESTINSNMOVE("mfc1 $s1, $f10", 40, f10, s1);
+ TESTINSNMOVE("mfc1 $s2, $f11", 44, f11, s2);
+ TESTINSNMOVE("mfc1 $s3, $f12", 48, f12, s3);
+ TESTINSNMOVE("mfc1 $s4, $f13", 52, f13, s4);
+ TESTINSNMOVE("mfc1 $s5, $f14", 56, f14, s5);
+ TESTINSNMOVE("mfc1 $s6, $f15", 60, f15, s6);
+ TESTINSNMOVE("mfc1 $s7, $f16", 64, f16, s7);
+ TESTINSNMOVE("mfc1 $a0, $f17", 0, f17, a0);
+ TESTINSNMOVE("mfc1 $a1, $f18", 4, f18, a1);
+ TESTINSNMOVE("mfc1 $a2, $f19", 8, f19, a2);
+ TESTINSNMOVE("mfc1 $a3, $f20", 12, f20, a3);
+ TESTINSNMOVE("mfc1 $v0, $f21", 16, f21, v0);
+ TESTINSNMOVE("mfc1 $v1, $f22", 20, f22, v1);
+ TESTINSNMOVE("mfc1 $t8, $f23", 24, f23, t8);
+ TESTINSNMOVE("mfc1 $t9, $f24", 28, f24, t9);
+ TESTINSNMOVE("mfc1 $t1, $f25", 32, f25, t1);
+ TESTINSNMOVE("mfc1 $t2, $f26", 36, f26, t2);
+
+ printf("MTC1\n");
+ TESTINSNMOVEt("mtc1 $t1, $f0", 0, f0, t1);
+ TESTINSNMOVEt("mtc1 $t2, $f1", 4, f1, t2);
+ TESTINSNMOVEt("mtc1 $t3, $f2", 8, f2, t3);
+ TESTINSNMOVEt("mtc1 $t4, $f3", 12, f3, t4);
+ TESTINSNMOVEt("mtc1 $t5, $f4", 16, f4, t5);
+ TESTINSNMOVEt("mtc1 $t6, $f5", 20, f5, t6);
+ TESTINSNMOVEt("mtc1 $t7, $f6", 24, f6, t7);
+ TESTINSNMOVEt("mtc1 $v0, $f7", 28, f7, v0);
+ TESTINSNMOVEt("mtc1 $v1, $f8", 32, f8, v1);
+ TESTINSNMOVEt("mtc1 $s0, $f9", 36, f9, s0);
+ TESTINSNMOVEt("mtc1 $s1, $f10", 40, f10, s1);
+ TESTINSNMOVEt("mtc1 $s2, $f11", 44, f11, s2);
+ TESTINSNMOVEt("mtc1 $s3, $f12", 48, f12, s3);
+ TESTINSNMOVEt("mtc1 $s4, $f13", 52, f13, s4);
+ TESTINSNMOVEt("mtc1 $s5, $f14", 56, f14, s5);
+ TESTINSNMOVEt("mtc1 $s6, $f15", 60, f15, s6);
+ TESTINSNMOVEt("mtc1 $s7, $f16", 64, f16, s7);
+ TESTINSNMOVEt("mtc1 $a0, $f17", 2, f17, a0);
+ TESTINSNMOVEt("mtc1 $a1, $f18", 6, f18, a1);
+ TESTINSNMOVEt("mtc1 $a2, $f19", 10, f19, a2);
+ TESTINSNMOVEt("mtc1 $a3, $f20", 14, f20, a3);
+ TESTINSNMOVEt("mtc1 $v0, $f21", 18, f21, v0);
+ TESTINSNMOVEt("mtc1 $v1, $f22", 22, f22, v1);
+ TESTINSNMOVEt("mtc1 $t8, $f23", 26, f23, t8);
+ TESTINSNMOVEt("mtc1 $t9, $f24", 30, f24, t9);
+ TESTINSNMOVEt("mtc1 $t1, $f25", 34, f25, t1);
+ TESTINSNMOVEt("mtc1 $t2, $f26", 38, f26, t2);
+
+ printf("MOV.S\n");
+ TESTINSNMOVE1s("mov.s $f0, $f0", 0, f0, f0);
+ TESTINSNMOVE1s("mov.s $f0, $f1", 4, f0, f1);
+ TESTINSNMOVE1s("mov.s $f1, $f2", 8, f1, f2);
+ TESTINSNMOVE1s("mov.s $f2, $f3", 12, f2, f3);
+ TESTINSNMOVE1s("mov.s $f3, $f4", 16, f3, f4);
+ TESTINSNMOVE1s("mov.s $f4, $f5", 20, f4, f5);
+ TESTINSNMOVE1s("mov.s $f5, $f6", 24, f5, f6);
+ TESTINSNMOVE1s("mov.s $f6, $f7", 28, f6, f7);
+ TESTINSNMOVE1s("mov.s $f7, $f8", 32, f7, f8);
+ TESTINSNMOVE1s("mov.s $f8, $f9", 36, f8, f9);
+ TESTINSNMOVE1s("mov.s $f9, $f10", 40, f9, f10);
+ TESTINSNMOVE1s("mov.s $f10, $f11", 44, f10, f11);
+ TESTINSNMOVE1s("mov.s $f11, $f12", 48, f11, f12);
+ TESTINSNMOVE1s("mov.s $f12, $f13", 52, f12, f13);
+ TESTINSNMOVE1s("mov.s $f13, $f14", 56, f13, f14);
+ TESTINSNMOVE1s("mov.s $f14, $f15", 60, f14, f15);
+ TESTINSNMOVE1s("mov.s $f15, $f16", 64, f15, f16);
+ TESTINSNMOVE1s("mov.s $f16, $f17", 0, f16, f17);
+ TESTINSNMOVE1s("mov.s $f17, $f18", 4, f17, f18);
+ TESTINSNMOVE1s("mov.s $f18, $f19", 8, f18, f19);
+ TESTINSNMOVE1s("mov.s $f19, $f20", 12, f19, f20);
+ TESTINSNMOVE1s("mov.s $f20, $f21", 16, f20, f21);
+ TESTINSNMOVE1s("mov.s $f21, $f22", 20, f21, f22);
+ TESTINSNMOVE1s("mov.s $f22, $f23", 24, f22, f23);
+ TESTINSNMOVE1s("mov.s $f23, $f24", 28, f23, f24);
+ TESTINSNMOVE1s("mov.s $f24, $f25", 32, f24, f25);
+ TESTINSNMOVE1s("mov.s $f25, $f26", 36, f25, f26);
+
+ printf("MOV.D\n");
+ TESTINSNMOVE1d("mov.d $f0, $f0", 0, f0, f0);
+ TESTINSNMOVE1d("mov.d $f0, $f0", 8, f0, f0);
+ TESTINSNMOVE1d("mov.d $f0, $f2", 16, f0, f2);
+ TESTINSNMOVE1d("mov.d $f2, $f4", 24, f2, f4);
+ TESTINSNMOVE1d("mov.d $f2, $f4", 32, f2, f4);
+ TESTINSNMOVE1d("mov.d $f4, $f6", 40, f4, f6);
+ TESTINSNMOVE1d("mov.d $f4, $f6", 48, f4, f6);
+ TESTINSNMOVE1d("mov.d $f6, $f8", 56, f6, f8);
+ TESTINSNMOVE1d("mov.d $f6, $f8", 64, f6, f8);
+ TESTINSNMOVE1d("mov.d $f8, $f10", 0, f8, f10);
+ TESTINSNMOVE1d("mov.d $f8, $f10", 8, f8, f10);
+ TESTINSNMOVE1d("mov.d $f10, $f12", 16, f10, f12);
+ TESTINSNMOVE1d("mov.d $f10, $f12", 24, f10, f12);
+ TESTINSNMOVE1d("mov.d $f12, $f14", 32, f12, f14);
+ TESTINSNMOVE1d("mov.d $f12, $f14", 40, f12, f14);
+ TESTINSNMOVE1d("mov.d $f14, $f16", 48, f14, f16);
+ TESTINSNMOVE1d("mov.d $f14, $f16", 56, f14, f16);
+ TESTINSNMOVE1d("mov.d $f16, $f18", 64, f16, f18);
+ TESTINSNMOVE1d("mov.d $f16, $f18", 0, f16, f18);
+ TESTINSNMOVE1d("mov.d $f18, $f20", 8, f18, f20);
+ TESTINSNMOVE1d("mov.d $f18, $f20", 16, f18, f20);
+ TESTINSNMOVE1d("mov.d $f20, $f22", 24, f20, f22);
+ TESTINSNMOVE1d("mov.d $f20, $f22", 32, f20, f22);
+ TESTINSNMOVE1d("mov.d $f22, $f24", 40, f22, f24);
+ TESTINSNMOVE1d("mov.d $f22, $f24", 48, f22, f24);
+ TESTINSNMOVE1d("mov.d $f24, $f26", 56, f24, f26);
+ TESTINSNMOVE1d("mov.d $f24, $f26", 64, f24, f26);
+
+ printf("MOVF\n");
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 0, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 0xffffffff, 0xffffffff, t0, t1, 0);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 555, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 0, 5, t0, t1, 0);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 0, -1, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 0xffffffff, 25, t0, t1, 0);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 0xffffffff, 0, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc0", 0xffffffff, 66, t0, t1, 0);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 0, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 0xffffffff, 0xffffffff, t0, t1, 0);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 555, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 0, 5, t0, t1, 0);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 0, -1, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 0xffffffff, 25, t0, t1, 0);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 0xffffffff, 0, t0, t1, 1);
+ TESTINSNMOVE2("movf $t0, $t1, $fcc4", 0xffffffff, 66, t0, t1, 0);
+
+ printf("MOVF.S\n");
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 0);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 4);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 8);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 12);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 16);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 20);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 24);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 28);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 32);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 36)
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 40)
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 44)
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 48)
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 52)
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 1, 56)
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 0);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 4);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 8);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 12);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 16);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 20);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 24);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 28);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 32);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 36);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 40);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 44);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 48);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 52);
+ TESTINSNMOVE2s("movf.s $f4, $f6, $fcc0", f4, f6, 0, 56);
+
+ printf("MOVF.D\n");
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 0);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 8);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 16);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 24);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 32);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 40);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 48);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 56);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 64);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 0)
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 8)
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 16)
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 24)
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 32)
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 1, 40)
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 48);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 56);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 64);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 0);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 8);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 16);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 24);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 32);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 40);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 48);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 56);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 64);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 0);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 8);
+ TESTINSNMOVE2d("movf.d $f4, $f6, $fcc0", f4, f6, 0, 16);
+
+ printf("MOVN.S\n");
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 0, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 4, 1, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 8, 0xffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 12, -1, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 16, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 20, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 24, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 28, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 32, 125487, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 36, 68, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 40, -122544, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 44, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 48, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 52, 0xffffffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 56, 0x80000000, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.s $f0, $f2, $t3", 60, 0x7fffffff, f0, f2, t3);
+
+ printf("MOVN.D\n");
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 0, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 4, 1, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 8, 0xffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 12, -1, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 16, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 20, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 24, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 28, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 32, 125487, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 36, 68, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 40, -122544, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 44, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 48, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 52, 0xffffffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 56, 0x80000000, f0, f2, t3);
+ TESTINSNMOVEN1s("movn.d $f0, $f2, $t3", 60, 0x7fffffff, f0, f2, t3);
+
+ printf("MOVT\n");
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 0, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 0xffffffff, 0xffffffff, t0, t1, 0);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 555, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 0, 5, t0, t1, 0);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 0, -1, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 0xffffffff, 25, t0, t1, 0);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 0xffffffff, 0, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc0", 0xffffffff, 66, t0, t1, 0);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 0, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 0xffffffff, 0xffffffff, t0, t1, 0);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 555, 0xffffffff, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 0, 5, t0, t1, 0);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 0, -1, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 0xffffffff, 25, t0, t1, 0);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 0xffffffff, 0, t0, t1, 1);
+ TESTINSNMOVE2("movt $t0, $t1, $fcc4", 0xffffffff, 66, t0, t1, 0);
+
+ printf("MOVT.S\n");
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 0);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 4);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 8);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 12);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 16);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 20);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 24);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 28);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 32);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 36)
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 40)
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 44)
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 48)
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 52)
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 1, 56)
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 0);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 4);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 8);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 12);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 16);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 20);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 24);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 28);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 32);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 36);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 40);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 44);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 48);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 52);
+ TESTINSNMOVE2s("movt.s $f4, $f6, $fcc0", f4, f6, 0, 56);
+
+ printf("MOVT.D\n");
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 0);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 8);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 16);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 24);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 32);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 40);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 48);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 56);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 64);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 0)
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 8)
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 16)
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 24)
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 32)
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 1, 40)
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 48);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 56);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 64);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 0);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 8);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 16);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 24);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 32);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 40);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 48);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 56);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 64);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 0);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 8);
+ TESTINSNMOVE2d("movt.d $f4, $f6, $fcc0", f4, f6, 0, 16);
+
+ printf("MOVZ.S\n");
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 0, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 4, 1, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 8, 0xffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 12, -1, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 16, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 20, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 24, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 24, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 28, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 32, 125487, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 36, 68, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 40, -122544, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 44, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 48, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 52, 0xffffffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 56, 0x80000000, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.s $f0, $f2, $t3", 60, 0x7fffffff, f0, f2, t3);
+
+ printf("MOVZ.D\n");
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 0, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 4, 1, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 8, 0xffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 12, -1, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 16, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 20, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 24, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 28, 5, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 32, 125487, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 36, 68, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 40, -122544, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 44, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 48, 0, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 52, 0xffffffff, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 56, 0x80000000, f0, f2, t3);
+ TESTINSNMOVEN1s("movz.d $f0, $f2, $t3", 60, 0x7fffffff, f0, f2, t3);
+ return 0;
+}
--- /dev/null
+MFC1
+mfc1 $t1, $f0 :: fs 4.676074, rt 0x4095a266
+mfc1 $t2, $f1 :: fs 272008302207532160516096.000000, rt 0x66666666
+mfc1 $t3, $f2 :: fs -1.875000, rt 0xbff00000
+mfc1 $t4, $f3 :: fs 0.000000, rt 0x0
+mfc1 $t5, $f4 :: fs 1.875000, rt 0x3ff00000
+mfc1 $t6, $f5 :: fs 0.000000, rt 0x0
+mfc1 $t7, $f6 :: fs 0.000000, rt 0x252a2e2b
+mfc1 $v0, $f7 :: fs 0.000000, rt 0x262d2d2a
+mfc1 $v1, $f8 :: fs nan, rt 0xffffffff
+mfc1 $s0, $f9 :: fs nan, rt 0xffffffff
+mfc1 $s1, $f10 :: fs 26.299561, rt 0x41d26580
+mfc1 $s2, $f11 :: fs -0.000000, rt 0xb487e5c9
+mfc1 $s3, $f12 :: fs 32.599121, rt 0x42026580
+mfc1 $s4, $f13 :: fs -0.000012, rt 0xb750e388
+mfc1 $s5, $f14 :: fs 0.192847, rt 0x3e45798e
+mfc1 $s6, $f15 :: fs -814182836421710053376.000000, rt 0xe2308c3a
+mfc1 $s7, $f16 :: fs 1.496914, rt 0x3fbf9add
+mfc1 $a0, $f17 :: fs 4.676074, rt 0x4095a266
+mfc1 $a1, $f18 :: fs 272008302207532160516096.000000, rt 0x66666666
+mfc1 $a2, $f19 :: fs -1.875000, rt 0xbff00000
+mfc1 $a3, $f20 :: fs 0.000000, rt 0x0
+mfc1 $v0, $f21 :: fs 1.875000, rt 0x3ff00000
+mfc1 $v1, $f22 :: fs 0.000000, rt 0x0
+mfc1 $t8, $f23 :: fs 0.000000, rt 0x252a2e2b
+mfc1 $t9, $f24 :: fs 0.000000, rt 0x262d2d2a
+mfc1 $t1, $f25 :: fs nan, rt 0xffffffff
+mfc1 $t2, $f26 :: fs nan, rt 0xffffffff
+MTC1
+mtc1 $t1, $f0 :: fs 4.676074, rt 0x4095a266
+mtc1 $t2, $f1 :: fs 272008302207532160516096.000000, rt 0x66666666
+mtc1 $t3, $f2 :: fs -1.875000, rt 0xbff00000
+mtc1 $t4, $f3 :: fs 0.000000, rt 0x0
+mtc1 $t5, $f4 :: fs 1.875000, rt 0x3ff00000
+mtc1 $t6, $f5 :: fs 0.000000, rt 0x0
+mtc1 $t7, $f6 :: fs 0.000000, rt 0x252a2e2b
+mtc1 $v0, $f7 :: fs 0.000000, rt 0x262d2d2a
+mtc1 $v1, $f8 :: fs nan, rt 0xffffffff
+mtc1 $s0, $f9 :: fs nan, rt 0xffffffff
+mtc1 $s1, $f10 :: fs 26.299561, rt 0x41d26580
+mtc1 $s2, $f11 :: fs -0.000000, rt 0xb487e5c9
+mtc1 $s3, $f12 :: fs 32.599121, rt 0x42026580
+mtc1 $s4, $f13 :: fs -0.000012, rt 0xb750e388
+mtc1 $s5, $f14 :: fs 0.192847, rt 0x3e45798e
+mtc1 $s6, $f15 :: fs -814182836421710053376.000000, rt 0xe2308c3a
+mtc1 $s7, $f16 :: fs 1.496914, rt 0x3fbf9add
+mtc1 $a0, $f17 :: fs 271833904815561865428992.000000, rt 0x66664095
+mtc1 $a1, $f18 :: fs 0.000000, rt 0x6666
+mtc1 $a2, $f19 :: fs 0.000000, rt 0xbff0
+mtc1 $a3, $f20 :: fs 0.000000, rt 0x0
+mtc1 $v0, $f21 :: fs 0.000000, rt 0x3ff0
+mtc1 $v1, $f22 :: fs 0.000000, rt 0x2e2b0000
+mtc1 $t8, $f23 :: fs 0.000000, rt 0x2d2a252a
+mtc1 $t9, $f24 :: fs nan, rt 0xffff262d
+mtc1 $t1, $f25 :: fs nan, rt 0xffffffff
+mtc1 $t2, $f26 :: fs 76148150529073774329856.000000, rt 0x6580ffff
+MOV.S
+mov.s $f0, $f0 :: fs 0.000000, rt 0x0
+mov.s $f0, $f1 :: fs 456.248962, rt 0x43e41fde
+mov.s $f1, $f2 :: fs 3.000000, rt 0x40400000
+mov.s $f2, $f3 :: fs -1.000000, rt 0xbf800000
+mov.s $f3, $f4 :: fs 1384.599976, rt 0x44ad1333
+mov.s $f4, $f5 :: fs -7.294568, rt 0xc0e96d19
+mov.s $f5, $f6 :: fs 1000000000.000000, rt 0x4e6e6b28
+mov.s $f6, $f7 :: fs -5786.470215, rt 0xc5b4d3c3
+mov.s $f7, $f8 :: fs 1752.000000, rt 0x44db0000
+mov.s $f8, $f9 :: fs 0.002457, rt 0x3b210e02
+mov.s $f9, $f10 :: fs 0.000000, rt 0x322bcc77
+mov.s $f10, $f11 :: fs -248562.765625, rt 0xc872bcb1
+mov.s $f11, $f12 :: fs -45786.476562, rt 0xc732da7a
+mov.s $f12, $f13 :: fs 456.248962, rt 0x43e41fde
+mov.s $f13, $f14 :: fs 34.000462, rt 0x42080079
+mov.s $f14, $f15 :: fs 45786.476562, rt 0x4732da7a
+mov.s $f15, $f16 :: fs 1752065.000000, rt 0x49d5e008
+mov.s $f16, $f17 :: fs 0.000000, rt 0x0
+mov.s $f17, $f18 :: fs 456.248962, rt 0x43e41fde
+mov.s $f18, $f19 :: fs 3.000000, rt 0x40400000
+mov.s $f19, $f20 :: fs -1.000000, rt 0xbf800000
+mov.s $f20, $f21 :: fs 1384.599976, rt 0x44ad1333
+mov.s $f21, $f22 :: fs -7.294568, rt 0xc0e96d19
+mov.s $f22, $f23 :: fs 1000000000.000000, rt 0x4e6e6b28
+mov.s $f23, $f24 :: fs -5786.470215, rt 0xc5b4d3c3
+mov.s $f24, $f25 :: fs 1752.000000, rt 0x44db0000
+mov.s $f25, $f26 :: fs 0.002457, rt 0x3b210e02
+MOV.D
+mov.d $f0, $f0 ::fs 11600973572943642624.000000, rt 0x0
+mov.d $f0, $f0 ::fs -0.007813, rt 0x40400000
+mov.d $f0, $f2 ::fs -52072.789633, rt 0x44ad1333
+mov.d $f2, $f4 ::fs -6445705852632282607665545216.000000, rt 0x4e6e6b28
+mov.d $f2, $f4 ::fs 0.000000, rt 0x44db0000
+mov.d $f4, $f6 ::fs -102014360350703794652958156923702465265664.000000, rt 0x322bcc77
+mov.d $f4, $f6 ::fs 11600980417357008896.000000, rt 0xc732da7a
+mov.d $f6, $f8 ::fs 97892595018733988536880335157198848.000000, rt 0x42080079
+mov.d $f6, $f8 ::fs 96757042599808.125000, rt 0x49d5e008
+mov.d $f8, $f10 ::fs 11600973572943642624.000000, rt 0x0
+mov.d $f8, $f10 ::fs -0.007813, rt 0x40400000
+mov.d $f10, $f12 ::fs -52072.789633, rt 0x44ad1333
+mov.d $f10, $f12 ::fs -6445705852632282607665545216.000000, rt 0x4e6e6b28
+mov.d $f12, $f14 ::fs 0.000000, rt 0x44db0000
+mov.d $f12, $f14 ::fs -102014360350703794652958156923702465265664.000000, rt 0x322bcc77
+mov.d $f14, $f16 ::fs 11600980417357008896.000000, rt 0xc732da7a
+mov.d $f14, $f16 ::fs 97892595018733988536880335157198848.000000, rt 0x42080079
+mov.d $f16, $f18 ::fs 96757042599808.125000, rt 0x49d5e008
+mov.d $f16, $f18 ::fs 11600973572943642624.000000, rt 0x0
+mov.d $f18, $f20 ::fs -0.007813, rt 0x40400000
+mov.d $f18, $f20 ::fs -52072.789633, rt 0x44ad1333
+mov.d $f20, $f22 ::fs -6445705852632282607665545216.000000, rt 0x4e6e6b28
+mov.d $f20, $f22 ::fs 0.000000, rt 0x44db0000
+mov.d $f22, $f24 ::fs -102014360350703794652958156923702465265664.000000, rt 0x322bcc77
+mov.d $f22, $f24 ::fs 11600980417357008896.000000, rt 0xc732da7a
+mov.d $f24, $f26 ::fs 97892595018733988536880335157198848.000000, rt 0x42080079
+mov.d $f24, $f26 ::fs 96757042599808.125000, rt 0x49d5e008
+MOVF
+movf $t0, $t1, $fcc0 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movf $t0, $t1, $fcc0 :: out: 0x22b, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0x5, RDval: 0x0, RSval: 0x5, cc: 0
+movf $t0, $t1, $fcc0 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0x19, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movf $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0x42, RDval: 0xffffffff, RSval: 0x42, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0x5, RDval: 0x0, RSval: 0x5, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0x19, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0x0, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0x42, RDval: 0xffffffff, RSval: 0x42, cc: 0
+MOVF.S
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 3.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -1.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 1384.599976, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -7.294568, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 1000000000.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -5786.470215, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 1752.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 0.002457, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -248562.765625, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+MOVF.D
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0x43e41fde, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42026580 0xb750e388, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3e45798e 0xe2308c3a, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3fbf9add 0x3746f65f, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x4095a266 0x66666666, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xbff00000 0x0, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3ff00000 0x0, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x252a2e2b 0x262d2d2a, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xffffffff 0xffffffff, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x42026580 0xb750e388, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3e45798e 0xe2308c3a, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3fbf9add 0x3746f65f, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x4095a266 0x66666666, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xbff00000 0x0, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3ff00000 0x0, cc: 0
+MOVN.S
+movn.s $f0, $f2, $t3 :: fs rt 0x1
+movn.s $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.s $f0, $f2, $t3 :: fs rt 0x40400000
+movn.s $f0, $f2, $t3 :: fs rt 0xbf800000
+movn.s $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.s $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.s $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.s $f0, $f2, $t3 :: fs rt 0xc5b4d3c3
+movn.s $f0, $f2, $t3 :: fs rt 0x44db0000
+movn.s $f0, $f2, $t3 :: fs rt 0x3b210e02
+movn.s $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.s $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.s $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.s $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.s $f0, $f2, $t3 :: fs rt 0x42080079
+movn.s $f0, $f2, $t3 :: fs rt 0x4732da7a
+MOVN.D
+movn.d $f0, $f2, $t3 :: fs rt 0x4732da7a
+movn.d $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.d $f0, $f2, $t3 :: fs rt 0x40400000
+movn.d $f0, $f2, $t3 :: fs rt 0xbf800000
+movn.d $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.d $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.d $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.d $f0, $f2, $t3 :: fs rt 0xc5b4d3c3
+movn.d $f0, $f2, $t3 :: fs rt 0x44db0000
+movn.d $f0, $f2, $t3 :: fs rt 0x3b210e02
+movn.d $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.d $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.d $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.d $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.d $f0, $f2, $t3 :: fs rt 0x42080079
+movn.d $f0, $f2, $t3 :: fs rt 0x4732da7a
+MOVT
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0x0, RDval: 0x0, RSval: 0x5, cc: 0
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movt $t0, $t1, $fcc0 :: out: 0x0, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x42, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0x22b, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0x0, RDval: 0x0, RSval: 0x5, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x42, cc: 0
+MOVT.S
+movt.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 3.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -1.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 1384.599976, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -7.294568, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 1000000000.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -5786.470215, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 1752.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 0.002457, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -248562.765625, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+MOVT.D
+movt.d $f4, $f6, $fcc0 :: out: 0x4095a266 0x66666666, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xbff00000 0x0, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x3ff00000 0x0, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x252a2e2b 0x262d2d2a, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xffffffff 0xffffffff, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x42026580 0xb750e388, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x3e45798e 0xe2308c3a, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x3fbf9add 0x3746f65f, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x4095a266 0x66666666, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xbff00000 0x0, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x3ff00000 0x0, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x252a2e2b 0x262d2d2a, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xffffffff 0xffffffff, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0x41d26580 0xb487e5c9, cc: 0
+MOVZ.S
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0xc0e96d19
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0xc872bcb1
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+MOVZ.D
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0xc0e96d19
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0xc872bcb1
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
--- /dev/null
+MFC1
+mfc1 $t1, $f0 :: fs 4.676074, rt 0x4095a266
+mfc1 $t2, $f1 :: fs 272008302207532160516096.000000, rt 0x66666666
+mfc1 $t3, $f2 :: fs -1.875000, rt 0xbff00000
+mfc1 $t4, $f3 :: fs 0.000000, rt 0x0
+mfc1 $t5, $f4 :: fs 1.875000, rt 0x3ff00000
+mfc1 $t6, $f5 :: fs 0.000000, rt 0x0
+mfc1 $t7, $f6 :: fs 0.000000, rt 0x252a2e2b
+mfc1 $v0, $f7 :: fs 0.000000, rt 0x262d2d2a
+mfc1 $v1, $f8 :: fs nan, rt 0xffffffff
+mfc1 $s0, $f9 :: fs nan, rt 0xffffffff
+mfc1 $s1, $f10 :: fs 26.299561, rt 0x41d26580
+mfc1 $s2, $f11 :: fs -0.000000, rt 0xb487e5c9
+mfc1 $s3, $f12 :: fs 32.599121, rt 0x42026580
+mfc1 $s4, $f13 :: fs -0.000012, rt 0xb750e388
+mfc1 $s5, $f14 :: fs 0.192847, rt 0x3e45798e
+mfc1 $s6, $f15 :: fs -814182836421710053376.000000, rt 0xe2308c3a
+mfc1 $s7, $f16 :: fs 1.496914, rt 0x3fbf9add
+mfc1 $a0, $f17 :: fs 4.676074, rt 0x4095a266
+mfc1 $a1, $f18 :: fs 272008302207532160516096.000000, rt 0x66666666
+mfc1 $a2, $f19 :: fs -1.875000, rt 0xbff00000
+mfc1 $a3, $f20 :: fs 0.000000, rt 0x0
+mfc1 $v0, $f21 :: fs 1.875000, rt 0x3ff00000
+mfc1 $v1, $f22 :: fs 0.000000, rt 0x0
+mfc1 $t8, $f23 :: fs 0.000000, rt 0x252a2e2b
+mfc1 $t9, $f24 :: fs 0.000000, rt 0x262d2d2a
+mfc1 $t1, $f25 :: fs nan, rt 0xffffffff
+mfc1 $t2, $f26 :: fs nan, rt 0xffffffff
+MTC1
+mtc1 $t1, $f0 :: fs 4.676074, rt 0x4095a266
+mtc1 $t2, $f1 :: fs 272008302207532160516096.000000, rt 0x66666666
+mtc1 $t3, $f2 :: fs -1.875000, rt 0xbff00000
+mtc1 $t4, $f3 :: fs 0.000000, rt 0x0
+mtc1 $t5, $f4 :: fs 1.875000, rt 0x3ff00000
+mtc1 $t6, $f5 :: fs 0.000000, rt 0x0
+mtc1 $t7, $f6 :: fs 0.000000, rt 0x252a2e2b
+mtc1 $v0, $f7 :: fs 0.000000, rt 0x262d2d2a
+mtc1 $v1, $f8 :: fs nan, rt 0xffffffff
+mtc1 $s0, $f9 :: fs nan, rt 0xffffffff
+mtc1 $s1, $f10 :: fs 26.299561, rt 0x41d26580
+mtc1 $s2, $f11 :: fs -0.000000, rt 0xb487e5c9
+mtc1 $s3, $f12 :: fs 32.599121, rt 0x42026580
+mtc1 $s4, $f13 :: fs -0.000012, rt 0xb750e388
+mtc1 $s5, $f14 :: fs 0.192847, rt 0x3e45798e
+mtc1 $s6, $f15 :: fs -814182836421710053376.000000, rt 0xe2308c3a
+mtc1 $s7, $f16 :: fs 1.496914, rt 0x3fbf9add
+mtc1 $a0, $f17 :: fs -0.000000, rt 0xa2666666
+mtc1 $a1, $f18 :: fs 272421228250166506553344.000000, rt 0x6666bff0
+mtc1 $a2, $f19 :: fs 0.000000, rt 0x0
+mtc1 $a3, $f20 :: fs 0.000000, rt 0x3ff0
+mtc1 $v0, $f21 :: fs 0.000000, rt 0x0
+mtc1 $v1, $f22 :: fs 0.000000, rt 0x252a
+mtc1 $t8, $f23 :: fs 0.000000, rt 0x2e2b262d
+mtc1 $t9, $f24 :: fs 0.000000, rt 0x2d2affff
+mtc1 $t1, $f25 :: fs nan, rt 0xffffffff
+mtc1 $t2, $f26 :: fs nan, rt 0xffff41d2
+MOV.S
+mov.s $f0, $f0 :: fs 0.000000, rt 0x0
+mov.s $f0, $f1 :: fs 456.248962, rt 0x43e41fde
+mov.s $f1, $f2 :: fs 3.000000, rt 0x40400000
+mov.s $f2, $f3 :: fs -1.000000, rt 0xbf800000
+mov.s $f3, $f4 :: fs 1384.599976, rt 0x44ad1333
+mov.s $f4, $f5 :: fs -7.294568, rt 0xc0e96d19
+mov.s $f5, $f6 :: fs 1000000000.000000, rt 0x4e6e6b28
+mov.s $f6, $f7 :: fs -5786.470215, rt 0xc5b4d3c3
+mov.s $f7, $f8 :: fs 1752.000000, rt 0x44db0000
+mov.s $f8, $f9 :: fs 0.002457, rt 0x3b210e02
+mov.s $f9, $f10 :: fs 0.000000, rt 0x322bcc77
+mov.s $f10, $f11 :: fs -248562.765625, rt 0xc872bcb1
+mov.s $f11, $f12 :: fs -45786.476562, rt 0xc732da7a
+mov.s $f12, $f13 :: fs 456.248962, rt 0x43e41fde
+mov.s $f13, $f14 :: fs 34.000462, rt 0x42080079
+mov.s $f14, $f15 :: fs 45786.476562, rt 0x4732da7a
+mov.s $f15, $f16 :: fs 1752065.000000, rt 0x49d5e008
+mov.s $f16, $f17 :: fs 0.000000, rt 0x0
+mov.s $f17, $f18 :: fs 456.248962, rt 0x43e41fde
+mov.s $f18, $f19 :: fs 3.000000, rt 0x40400000
+mov.s $f19, $f20 :: fs -1.000000, rt 0xbf800000
+mov.s $f20, $f21 :: fs 1384.599976, rt 0x44ad1333
+mov.s $f21, $f22 :: fs -7.294568, rt 0xc0e96d19
+mov.s $f22, $f23 :: fs 1000000000.000000, rt 0x4e6e6b28
+mov.s $f23, $f24 :: fs -5786.470215, rt 0xc5b4d3c3
+mov.s $f24, $f25 :: fs 1752.000000, rt 0x44db0000
+mov.s $f25, $f26 :: fs 0.002457, rt 0x3b210e02
+MOV.D
+mov.d $f0, $f0 ::fs 0.000000, rt 0x43e41fde
+mov.d $f0, $f0 ::fs 32.000023, rt 0xbf800000
+mov.d $f0, $f2 ::fs 68651422688883217793024.000000, rt 0xc0e96d19
+mov.d $f2, $f4 ::fs 6560668703763947508025308754622564314214011401697745896073690307624960.000000, rt 0xc5b4d3c3
+mov.d $f2, $f4 ::fs 510015646723392374046720.000000, rt 0x3b210e02
+mov.d $f4, $f6 ::fs 0.000000, rt 0xc872bcb1
+mov.d $f4, $f6 ::fs -97892595594330935155564225983676416.000000, rt 0x43e41fde
+mov.d $f6, $f8 ::fs 12885895398.356678, rt 0x4732da7a
+mov.d $f6, $f8 ::fs 499539571012599806217935122808662584365932347392.000000, rt 0x42d60000
+mov.d $f8, $f10 ::fs 0.000000, rt 0x43e41fde
+mov.d $f8, $f10 ::fs 32.000023, rt 0xbf800000
+mov.d $f10, $f12 ::fs 68651422688883217793024.000000, rt 0xc0e96d19
+mov.d $f10, $f12 ::fs 6560668703763947508025308754622564314214011401697745896073690307624960.000000, rt 0xc5b4d3c3
+mov.d $f12, $f14 ::fs 510015646723392374046720.000000, rt 0x3b210e02
+mov.d $f12, $f14 ::fs 0.000000, rt 0xc872bcb1
+mov.d $f14, $f16 ::fs -97892595594330935155564225983676416.000000, rt 0x43e41fde
+mov.d $f14, $f16 ::fs 12885895398.356678, rt 0x4732da7a
+mov.d $f16, $f18 ::fs 499539571012599806217935122808662584365932347392.000000, rt 0x42d60000
+mov.d $f16, $f18 ::fs 0.000000, rt 0x43e41fde
+mov.d $f18, $f20 ::fs 32.000023, rt 0xbf800000
+mov.d $f18, $f20 ::fs 68651422688883217793024.000000, rt 0xc0e96d19
+mov.d $f20, $f22 ::fs 6560668703763947508025308754622564314214011401697745896073690307624960.000000, rt 0xc5b4d3c3
+mov.d $f20, $f22 ::fs 510015646723392374046720.000000, rt 0x3b210e02
+mov.d $f22, $f24 ::fs 0.000000, rt 0xc872bcb1
+mov.d $f22, $f24 ::fs -97892595594330935155564225983676416.000000, rt 0x43e41fde
+mov.d $f24, $f26 ::fs 12885895398.356678, rt 0x4732da7a
+mov.d $f24, $f26 ::fs 499539571012599806217935122808662584365932347392.000000, rt 0x42d60000
+MOVF
+movf $t0, $t1, $fcc0 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movf $t0, $t1, $fcc0 :: out: 0x22b, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0x5, RDval: 0x0, RSval: 0x5, cc: 0
+movf $t0, $t1, $fcc0 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0x19, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movf $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movf $t0, $t1, $fcc0 :: out: 0x42, RDval: 0xffffffff, RSval: 0x42, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0x5, RDval: 0x0, RSval: 0x5, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0x19, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movf $t0, $t1, $fcc4 :: out: 0x0, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movf $t0, $t1, $fcc4 :: out: 0x42, RDval: 0xffffffff, RSval: 0x42, cc: 0
+MOVF.S
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movf.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 3.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -1.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 1384.599976, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -7.294568, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 1000000000.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -5786.470215, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 1752.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 0.002457, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -248562.765625, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 0
+movf.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+MOVF.D
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0x42080079 0xc732da7a, cc: 1
+movf.d $f4, $f6, $fcc0 :: out: 0xb750e388 0x42026580, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xe2308c3a 0x3e45798e, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3746f65f 0x3fbf9add, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x66666666 0x4095a266, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x0 0xbff00000, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x0 0x3ff00000, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x262d2d2a 0x252a2e2b, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xffffffff 0xffffffff, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xb750e388 0x42026580, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0xe2308c3a 0x3e45798e, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x3746f65f 0x3fbf9add, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x66666666 0x4095a266, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x0 0xbff00000, cc: 0
+movf.d $f4, $f6, $fcc0 :: out: 0x0 0x3ff00000, cc: 0
+MOVN.S
+movn.s $f0, $f2, $t3 :: fs rt 0x1
+movn.s $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.s $f0, $f2, $t3 :: fs rt 0x40400000
+movn.s $f0, $f2, $t3 :: fs rt 0xbf800000
+movn.s $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.s $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.s $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.s $f0, $f2, $t3 :: fs rt 0xc5b4d3c3
+movn.s $f0, $f2, $t3 :: fs rt 0x44db0000
+movn.s $f0, $f2, $t3 :: fs rt 0x3b210e02
+movn.s $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.s $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.s $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.s $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.s $f0, $f2, $t3 :: fs rt 0x42080079
+movn.s $f0, $f2, $t3 :: fs rt 0x4732da7a
+MOVN.D
+movn.d $f0, $f2, $t3 :: fs rt 0x4732da7a
+movn.d $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.d $f0, $f2, $t3 :: fs rt 0x40400000
+movn.d $f0, $f2, $t3 :: fs rt 0xbf800000
+movn.d $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.d $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.d $f0, $f2, $t3 :: fs rt 0x44ad1333
+movn.d $f0, $f2, $t3 :: fs rt 0xc5b4d3c3
+movn.d $f0, $f2, $t3 :: fs rt 0x44db0000
+movn.d $f0, $f2, $t3 :: fs rt 0x3b210e02
+movn.d $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.d $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.d $f0, $f2, $t3 :: fs rt 0x322bcc77
+movn.d $f0, $f2, $t3 :: fs rt 0x43e41fde
+movn.d $f0, $f2, $t3 :: fs rt 0x42080079
+movn.d $f0, $f2, $t3 :: fs rt 0x4732da7a
+MOVT
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0x0, RDval: 0x0, RSval: 0x5, cc: 0
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movt $t0, $t1, $fcc0 :: out: 0x0, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movt $t0, $t1, $fcc0 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x42, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0xffffffff, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0x22b, RDval: 0x22b, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0x0, RDval: 0x0, RSval: 0x5, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0x0, RDval: 0x0, RSval: 0xffffffff, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x19, cc: 0
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x0, cc: 1
+movt $t0, $t1, $fcc4 :: out: 0xffffffff, RDval: 0xffffffff, RSval: 0x42, cc: 0
+MOVT.S
+movt.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 3.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -1.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 1384.599976, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -7.294568, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 1000000000.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -5786.470215, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 1752.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 0.002457, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 0.000000, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -248562.765625, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: -45786.476562, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 456.248962, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 1
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+movt.s $f4, $f6, $fcc0 :: out: 34.000462, cc: 0
+MOVT.D
+movt.d $f4, $f6, $fcc0 :: out: 0x66666666 0x4095a266, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x0 0xbff00000, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x0 0x3ff00000, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x262d2d2a 0x252a2e2b, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xffffffff 0xffffffff, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xb750e388 0x42026580, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xe2308c3a 0x3e45798e, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x3746f65f 0x3fbf9add, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x66666666 0x4095a266, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x0 0xbff00000, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x0 0x3ff00000, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0x262d2d2a 0x252a2e2b, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xffffffff 0xffffffff, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 1
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+movt.d $f4, $f6, $fcc0 :: out: 0xb487e5c9 0x41d26580, cc: 0
+MOVZ.S
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0x0
+movz.s $f0, $f2, $t3 :: fs rt 0xc0e96d19
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.s $f0, $f2, $t3 :: fs rt 0xc872bcb1
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.s $f0, $f2, $t3 :: fs rt 0xc732da7a
+MOVZ.D
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0x0
+movz.d $f0, $f2, $t3 :: fs rt 0xc0e96d19
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0x4e6e6b28
+movz.d $f0, $f2, $t3 :: fs rt 0xc872bcb1
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
+movz.d $f0, $f2, $t3 :: fs rt 0xc732da7a
--- /dev/null
+prog: MoveIns
+vgopts: -q
--- /dev/null
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+extern char **environ;
+
+#define S(...) (fprintf(stdout, __VA_ARGS__),fflush(stdout))
+#define FORKEXECWAIT(exec_call) do { \
+ int status;\
+ pid_t child = fork(); \
+ if (child == 0) {exec_call; perror ("exec failed");} \
+ else if (child == -1) perror ("cannot fork\n"); \
+ else if (child != wait (&status)) perror ("error waiting child"); \
+ else S("child exited\n"); \
+ } while (0)
+
+void test_allexec (char *exec)
+{
+ FORKEXECWAIT (execlp(exec, exec, NULL));
+ FORKEXECWAIT (execlp(exec, exec, "constant_arg1", "constant_arg2", NULL));
+ FORKEXECWAIT (execve(exec, NULL, environ));
+}
+
+
+/* If a single argument "exec" is given, will execute itself
+ (in bi-arch, a 32 bit and 64 bit variant) via various exec system calls.
+ Note that this test can only be run after the prerequisite have been
+ prepared by allexec_prepare_prereq, which will a.o. make links
+ for the allexec32 and allexec64 executables. On single arch build,
+ these links points to the same executable to ensure this test works
+ everywhere the same.
+ No arguments or more arguments means just print its args. */
+int main(int argc, char **argv, char **envp)
+{
+ if ( (argc == 2) && (strcmp (argv[1], "exec") == 0)) {
+ S("%s will exec ./allexec32\n", argv[0]);
+ test_allexec ("./allexec32");
+ S("%s will exec ./allexec64\n", argv[0]);
+ test_allexec ("./allexec64");
+ } else {
+ int i;
+ S("program exec-ed:");
+ for (i = 0; i < argc; i++) S(" %s", argv[i]);
+ S("\n");
+ }
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+
+#define TESTINST1(RSval, RD) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RD ", %1\n\t" \
+ "b end"#RSval"\n\t" \
+ "nop\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "end"#RSval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval) \
+ : #RD, "cc", "memory" \
+ ); \
+ printf("B :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST2(RSval, RD) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RD ", %1\n\t" \
+ "b end12"#RSval"\n\t" \
+ "addi $" #RD ", $" #RD", 3\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "end12"#RSval":\n\t" \
+ "addi $" #RD ", $" #RD", 3\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval) \
+ : #RD, "cc", "memory" \
+ ); \
+ printf("B :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST3(RSval, RD) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RD ", %1\n\t" \
+ "bal end21"#RSval"\n\t" \
+ "nop\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "b r_end"#RSval"\n\t" \
+ "nop\n\t" \
+ "end21"#RSval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "jr $ra\n\t" \
+ "r_end"#RSval":\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval) \
+ : #RD, "cc", "memory" \
+ ); \
+ printf("B BAL JR :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST3j(RSval, RD) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RD ", %1\n\t" \
+ "la $t0, end31"#RSval"\n\t" \
+ "jal $t0\n\t" \
+ "nop\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "la $t0, r_end11"#RSval"\n\t" \
+ "j $t0\n\t" \
+ "nop\n\t" \
+ "end31"#RSval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "jr $ra\n\t" \
+ "r_end11"#RSval":\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval) \
+ : #RD, "t0", "cc", "memory" \
+ ); \
+ printf("J JAL JR :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST3ja(RSval, RD) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RD ", %1\n\t" \
+ "la $t0, end41"#RSval"\n\t" \
+ "jalr $t1, $t0\n\t" \
+ "nop\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "la $t0, r_end21"#RSval"\n\t" \
+ "j $t0\n\t" \
+ "nop\n\t" \
+ "end41"#RSval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "jr $t1\n\t" \
+ "r_end21"#RSval":\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval) \
+ : #RD, "t0", "t1", "cc", "memory" \
+ ); \
+ printf("J JALR JR :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST4(instruction, RDval, RSval, RTval, RD, RS, RT) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RS ", %1\n\t" \
+ "move $" #RT ", %2\n\t" \
+ "move $" #RD ", %3\n\t" \
+ instruction" $" #RS ", $" #RT ", end"instruction#RDval"\n\t" \
+ "nop\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "end"instruction#RDval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RTval), "r" (RDval) \
+ : #RD, #RS, #RT, "cc", "memory" \
+ ); \
+ printf(instruction" :: %d, RSval: %d, RTval: %d\n", \
+ out, RSval, RTval); \
+}
+
+#define TESTINST5(instruction, RDval, RSval, RD, RS) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RS ", %1\n\t" \
+ "move $" #RD ", %2\n\t" \
+ instruction" $" #RS ", end"instruction#RDval"\n\t" \
+ "nop\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "end"instruction#RDval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RDval) \
+ : #RD, #RS, "cc", "memory" \
+ ); \
+ printf(instruction" :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST6(instruction, RDval, RSval, RD, RS) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RD ", %2\n\t" \
+ "move $" #RS ", %1\n\t" \
+ instruction" $" #RS ", end21"instruction#RDval"\n\t" \
+ "nop\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "b r_end"instruction#RDval"\n\t" \
+ "nop\n\t" \
+ "end21"instruction#RDval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "jr $ra\n\t" \
+ "r_end"instruction#RDval":\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RDval) \
+ : #RD, #RS, "cc", "memory" \
+ ); \
+ printf(instruction" :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST4l(instruction, RDval, RSval, RTval, RD, RS, RT) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RS ", %1\n\t" \
+ "move $" #RT ", %2\n\t" \
+ "move $" #RD ", %3\n\t" \
+ instruction" $" #RS ", $" #RT ", end"instruction#RDval"\n\t" \
+ "addi $" #RD ", $" #RD", 3\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "end"instruction#RDval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RTval), "r" (RDval) \
+ : #RD, #RS, #RT, "cc", "memory" \
+ ); \
+ printf(instruction" :: %d, RSval: %d, RTval: %d\n", \
+ out, RSval, RTval); \
+}
+
+#define TESTINST5l(instruction, RDval, RSval, RD, RS) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RS ", %1\n\t" \
+ "move $" #RD ", %2\n\t" \
+ instruction" $" #RS ", end"instruction#RDval"\n\t" \
+ "addi $" #RD ", $" #RD", 3\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "end"instruction#RDval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RDval) \
+ : #RD, #RS, "cc", "memory" \
+ ); \
+ printf(instruction" :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+#define TESTINST6l(instruction, RDval, RSval, RD, RS) \
+{ \
+ unsigned int out = 0; \
+ __asm__ volatile( \
+ "move $" #RD ", %2\n\t" \
+ "move $" #RS ", %1\n\t" \
+ instruction" $" #RS ", end21"instruction#RDval"\n\t" \
+ "addi $" #RD ", $" #RD", 3\n\t" \
+ "addi $" #RD ", $" #RD", 5\n\t" \
+ "b r_end"instruction#RDval"\n\t" \
+ "nop\n\t" \
+ "end21"instruction#RDval":\n\t" \
+ "addi $" #RD ", $" #RD", 1\n\t" \
+ "jr $ra\n\t" \
+ "r_end"instruction#RDval":\n\t" \
+ "move %0, $" #RD "\n\t" \
+ : "=&r" (out) \
+ : "r" (RSval), "r" (RDval) \
+ : #RD, #RS, "cc", "memory" \
+ ); \
+ printf(instruction" :: %d, RSval: %d\n", \
+ out, RSval); \
+}
+
+int main()
+{
+ printf("b \n");
+ TESTINST1(0, v0);
+ TESTINST1(1, v1);
+ TESTINST1(2, a0);
+ TESTINST1(3, a1);
+ TESTINST1(4, a2);
+ TESTINST1(5, a3);
+ TESTINST1(6, t0);
+ TESTINST1(7, t1);
+ TESTINST1(8, t2);
+ TESTINST1(9, t3);
+ TESTINST1(10, t4);
+ TESTINST1(11, t5);
+ TESTINST1(12, t6);
+ TESTINST1(13, t7);
+ TESTINST1(14, s0);
+ TESTINST1(15, s1);
+ TESTINST1(16, s2);
+ TESTINST1(17, s3);
+ TESTINST1(18, s4);
+ TESTINST1(19, s5);
+ TESTINST1(20, s6);
+ TESTINST1(21, s7);
+ TESTINST1(22, t8);
+ TESTINST1(23, t9);
+
+ printf("b \n");
+ TESTINST2(0, v0);
+ TESTINST2(1, v1);
+ TESTINST2(2, a0);
+ TESTINST2(3, a1);
+ TESTINST2(4, a2);
+ TESTINST2(5, a3);
+ TESTINST2(6, t0);
+ TESTINST2(7, t1);
+ TESTINST2(8, t2);
+ TESTINST2(9, t3);
+ TESTINST2(10, t4);
+ TESTINST2(11, t5);
+ TESTINST2(12, t6);
+ TESTINST2(13, t7);
+ TESTINST2(14, s0);
+ TESTINST2(15, s1);
+ TESTINST2(16, s2);
+ TESTINST2(17, s3);
+ TESTINST2(18, s4);
+ TESTINST2(19, s5);
+ TESTINST2(20, s6);
+ TESTINST2(21, s7);
+ TESTINST2(22, t8);
+ TESTINST2(23, t9);
+
+ printf("b, bal, jr \n");
+ TESTINST3(0, v0);
+ TESTINST3(1, v1);
+ TESTINST3(2, a0);
+ TESTINST3(3, a1);
+ TESTINST3(4, a2);
+ TESTINST3(5, a3);
+ TESTINST3(6, t0);
+ TESTINST3(7, t1);
+ TESTINST3(8, t2);
+ TESTINST3(9, t3);
+ TESTINST3(10, t4);
+ TESTINST3(11, t5);
+ TESTINST3(12, t6);
+ TESTINST3(13, t7);
+ TESTINST3(14, s0);
+ TESTINST3(15, s1);
+ TESTINST3(16, s2);
+ TESTINST3(17, s3);
+ TESTINST3(18, s4);
+ TESTINST3(19, s5);
+ TESTINST3(20, s6);
+ TESTINST3(21, s7);
+ TESTINST3(22, t8);
+ TESTINST3(23, t9);
+
+ printf("beq\n");
+ TESTINST4("beq", 0, 0, 1, v0, v1, a0);
+ TESTINST4("beq", 1, 1, 1, v1, a0, a1);
+ TESTINST4("beq", 2, 0xffffffff, 0xffffffff, a0, a1, a2);
+ TESTINST4("beq", 3, 0xffffffff, 0xfffffffe, a1, a2, a3);
+ TESTINST4("beq", 4, 0xfffffffe, 0xffffffff, a2, t0, t1);
+ TESTINST4("beq", 5, 0xffffffff, 0xffffffff, a3, t0, t1);
+ TESTINST4("beq", 6, 0x5, 0x5, t0, t1, t2);
+ TESTINST4("beq", 7, -3, -4, t1, t2, t3);
+ TESTINST4("beq", 8, 125, 125, t2, t3, t4);
+ TESTINST4("beq", 9, 0x80000000, 0x80000000, t3, t4, t5);
+ TESTINST4("beq", 10, 0xffffffff, 0x80000000, t4, t5, t6);
+ TESTINST4("beq", 11, 0x256, 0x256, t5, t6, t7);
+ TESTINST4("beq", 12, 0x55, 0x55, t6, t7, s0);
+ TESTINST4("beq", 13, 0xfff, 0xdd, s0, s1, s2);
+ TESTINST4("beq", 14, -1, 0x5, v0, t9, t8);
+ TESTINST4("beq", 15, -1, -1, t9, t8, a3);
+
+ printf("bne\n");
+ TESTINST4("bne", 0, 0, 1, v0, v1, a0);
+ TESTINST4("bne", 1, 1, 1, v1, a0, a1);
+ TESTINST4("bne", 2, 0xffffffff, 0xffffffff, a0, a1, a2);
+ TESTINST4("bne", 3, 0xffffffff, 0xfffffffe, a1, a2, a3);
+ TESTINST4("bne", 4, 0xfffffffe, 0xffffffff, a2, t0, t1);
+ TESTINST4("bne", 5, 0xffffffff, 0xffffffff, a3, t0, t1);
+ TESTINST4("bne", 6, 0x5, 0x5, t0, t1, t2);
+ TESTINST4("bne", 7, -3, -4, t1, t2, t3);
+ TESTINST4("bne", 8, 125, 125, t2, t3, t4);
+ TESTINST4("bne", 9, 0x80000000, 0x80000000, t3, t4, t5);
+ TESTINST4("bne", 10, 0xffffffff, 0x80000000, t4, t5, t6);
+ TESTINST4("bne", 11, 0x256, 0x256, t5, t6, t7);
+ TESTINST4("bne", 12, 0x55, 0x55, t6, t7, s0);
+ TESTINST4("bne", 13, 0xfff, 0xdd, s0, s1, s2);
+ TESTINST4("bne", 14, -1, 0x5, v0, t9, t8);
+ TESTINST4("bne", 15, -1, -1, t9, t8, a3);
+
+ printf("BEQZ\n");
+ TESTINST5("beqz", 0, 0, v0, v1);
+ TESTINST5("beqz", 1, 1, v1, a0);
+ TESTINST5("beqz", 2, 0xffffffff, a0, a1);
+ TESTINST5("beqz", 3, 0xffffffff, a1, a2);
+ TESTINST5("beqz", 4, 0xfffffffe, a2, t0);
+ TESTINST5("beqz", 5, 0xffffffff, a3, t0);
+ TESTINST5("beqz", 6, 0x5, t0, t1);
+ TESTINST5("beqz", 7, -3, t1, t2);
+ TESTINST5("beqz", 8, 125, t2, t3);
+ TESTINST5("beqz", 9, 0x80000000, t3, t4);
+ TESTINST5("beqz", 10, 0xffffffff, t4, t5);
+ TESTINST5("beqz", 11, 0x256, t5, t6);
+ TESTINST5("beqz", 12, 0x55, t6, t7);
+ TESTINST5("beqz", 13, 0xfff, s0, s1);
+ TESTINST5("beqz", 14, -1, v0, t9);
+ TESTINST5("beqz", 15, -1, t9, t8);
+
+ printf("BGEZ\n");
+ TESTINST5("bgez", 0, 0, v0, v1);
+ TESTINST5("bgez", 1, 1, v1, a0);
+ TESTINST5("bgez", 2, 0xffffffff, a0, a1);
+ TESTINST5("bgez", 3, 0xffffffff, a1, a2);
+ TESTINST5("bgez", 4, 0xfffffffe, a2, t0);
+ TESTINST5("bgez", 5, 0xffffffff, a3, t0);
+ TESTINST5("bgez", 6, 0x5, t0, t1);
+ TESTINST5("bgez", 7, -3, t1, t2);
+ TESTINST5("bgez", 8, 125, t2, t3);
+ TESTINST5("bgez", 9, 0x80000000, t3, t4);
+ TESTINST5("bgez", 10, 0xffffffff, t4, t5);
+ TESTINST5("bgez", 11, 0x256, t5, t6);
+ TESTINST5("bgez", 12, 0x55, t6, t7);
+ TESTINST5("bgez", 13, 0xfff, s0, s1);
+ TESTINST5("bgez", 14, -1, v0, t9);
+ TESTINST5("bgez", 15, -1, t9, t8);
+
+ printf("BGTZ\n");
+ TESTINST5("bgtz", 0, 0, v0, v1);
+ TESTINST5("bgtz", 1, 1, v1, a0);
+ TESTINST5("bgtz", 2, 0xffffffff, a0, a1);
+ TESTINST5("bgtz", 3, 0xffffffff, a1, a2);
+ TESTINST5("bgtz", 4, 0xfffffffe, a2, t0);
+ TESTINST5("bgtz", 5, 0xffffffff, a3, t0);
+ TESTINST5("bgtz", 6, 0x5, t0, t1);
+ TESTINST5("bgtz", 7, -3, t1, t2);
+ TESTINST5("bgtz", 8, 125, t2, t3);
+ TESTINST5("bgtz", 9, 0x80000000, t3, t4);
+ TESTINST5("bgtz", 10, 0xffffffff, t4, t5);
+ TESTINST5("bgtz", 11, 0x256, t5, t6);
+ TESTINST5("bgtz", 12, 0x55, t6, t7);
+ TESTINST5("bgtz", 13, 0xfff, s0, s1);
+ TESTINST5("bgtz", 14, -1, v0, t9);
+ TESTINST5("bgtz", 15, -1, t9, t8);
+
+ printf("BLEZ\n");
+ TESTINST5("blez", 0, 0, v0, v1);
+ TESTINST5("blez", 1, 1, v1, a0);
+ TESTINST5("blez", 2, 0xffffffff, a0, a1);
+ TESTINST5("blez", 3, 0xffffffff, a1, a2);
+ TESTINST5("blez", 4, 0xfffffffe, a2, t0);
+ TESTINST5("blez", 5, 0xffffffff, a3, t0);
+ TESTINST5("blez", 6, 0x5, t0, t1);
+ TESTINST5("blez", 7, -3, t1, t2);
+ TESTINST5("blez", 8, 125, t2, t3);
+ TESTINST5("blez", 9, 0x80000000, t3, t4);
+ TESTINST5("blez", 10, 0xffffffff, t4, t5);
+ TESTINST5("blez", 11, 0x256, t5, t6);
+ TESTINST5("blez", 12, 0x55, t6, t7);
+ TESTINST5("blez", 13, 0xfff, s0, s1);
+ TESTINST5("blez", 14, -1, v0, t9);
+ TESTINST5("blez", 15, -1, t9, t8);
+
+ printf("BLTZ\n");
+ TESTINST5("bltz", 0, 0, v0, v1);
+ TESTINST5("bltz", 1, 1, v1, a0);
+ TESTINST5("bltz", 2, 0xffffffff, a0, a1);
+ TESTINST5("bltz", 3, 0xffffffff, a1, a2);
+ TESTINST5("bltz", 4, 0xfffffffe, a2, t0);
+ TESTINST5("bltz", 5, 0xffffffff, a3, t0);
+ TESTINST5("bltz", 6, 0x5, t0, t1);
+ TESTINST5("bltz", 7, -3, t1, t2);
+ TESTINST5("bltz", 8, 125, t2, t3);
+ TESTINST5("bltz", 9, 0x80000000, t3, t4);
+ TESTINST5("bltz", 10, 0xffffffff, t4, t5);
+ TESTINST5("bltz", 11, 0x256, t5, t6);
+ TESTINST5("bltz", 12, 0x55, t6, t7);
+ TESTINST5("bltz", 13, 0xfff, s0, s1);
+ TESTINST5("bltz", 14, -1, v0, t9);
+ TESTINST5("bltz", 15, -1, t9, t8);
+
+ printf("BGEZAL\n");
+ TESTINST6("bgezal", 0, 0, v0, v1);
+ TESTINST6("bgezal", 1, 1, v1, a0);
+ TESTINST6("bgezal", 2, 0xffffffff, a0, a1);
+ TESTINST6("bgezal", 3, 0xffffffff, a1, a2);
+ TESTINST6("bgezal", 4, 0xfffffffe, a2, t0);
+ TESTINST6("bgezal", 5, 0xffffffff, a3, t0);
+ TESTINST6("bgezal", 6, 0x5, t0, t1);
+ TESTINST6("bgezal", 7, -3, t1, t2);
+ TESTINST6("bgezal", 8, 125, t2, t3);
+ TESTINST6("bgezal", 9, 0x80000000, t3, t4);
+ TESTINST6("bgezal", 10, 0xffffffff, t4, t5);
+ TESTINST6("bgezal", 11, 0x256, t5, t6);
+ TESTINST6("bgezal", 12, 0x55, t6, t7);
+ TESTINST6("bgezal", 13, 0xfff, s0, s1);
+ TESTINST6("bgezal", 14, -1, v0, t9);
+ TESTINST6("bgezal", 15, -1, t9, t8);
+
+ printf("BLTZAL\n");
+ TESTINST6("bltzal", 0, 0, v0, v1);
+ TESTINST6("bltzal", 1, 1, v1, a0);
+ TESTINST6("bltzal", 2, 0xffffffff, a0, a1);
+ TESTINST6("bltzal", 3, 0xffffffff, a1, a2);
+ TESTINST6("bltzal", 4, 0xfffffffe, a2, t0);
+ TESTINST6("bltzal", 5, 0xffffffff, a3, t0);
+ TESTINST6("bltzal", 6, 0x5, t0, t1);
+ TESTINST6("bltzal", 7, -3, t1, t2);
+ TESTINST6("bltzal", 8, 125, t2, t3);
+ TESTINST6("bltzal", 9, 0x80000000, t3, t4);
+ TESTINST6("bltzal", 10, 0xffffffff, t4, t5);
+ TESTINST6("bltzal", 11, 0x256, t5, t6);
+ TESTINST6("bltzal", 12, 0x55, t6, t7);
+ TESTINST6("bltzal", 13, 0xfff, s0, s1);
+ TESTINST6("bltzal", 14, -1, v0, t9);
+ TESTINST6("bltzal", 15, -1, t9, t8);
+
+ printf("BNEZ\n");
+ TESTINST5("bnez", 0, 0, v0, v1);
+ TESTINST5("bnez", 1, 1, v1, a0);
+ TESTINST5("bnez", 2, 0xffffffff, a0, a1);
+ TESTINST5("bnez", 3, 0xffffffff, a1, a2);
+ TESTINST5("bnez", 4, 0xfffffffe, a2, t0);
+ TESTINST5("bnez", 5, 0xffffffff, a3, t0);
+ TESTINST5("bnez", 6, 0x5, t0, t1);
+ TESTINST5("bnez", 7, -3, t1, t2);
+ TESTINST5("bnez", 8, 125, t2, t3);
+ TESTINST5("bnez", 9, 0x80000000, t3, t4);
+ TESTINST5("bnez", 10, 0xffffffff, t4, t5);
+ TESTINST5("bnez", 11, 0x256, t5, t6);
+ TESTINST5("bnez", 12, 0x55, t6, t7);
+ TESTINST5("bnez", 13, 0xfff, s0, s1);
+ TESTINST5("bnez", 14, -1, v0, t9);
+ TESTINST5("bnez", 15, -1, t9, t8);
+
+ printf("beql\n");
+ TESTINST4l("beql", 0, 0, 1, v0, v1, a0);
+ TESTINST4l("beql", 1, 1, 1, v1, a0, a1);
+ TESTINST4l("beql", 2, 0xffffffff, 0xffffffff, a0, a1, a2);
+ TESTINST4l("beql", 3, 0xffffffff, 0xfffffffe, a1, a2, a3);
+ TESTINST4l("beql", 4, 0xfffffffe, 0xffffffff, a2, t0, t1);
+ TESTINST4l("beql", 5, 0xffffffff, 0xffffffff, a3, t0, t1);
+ TESTINST4l("beql", 6, 0x5, 0x5, t0, t1, t2);
+ TESTINST4l("beql", 7, -3, -4, t1, t2, t3);
+ TESTINST4l("beql", 8, 125, 125, t2, t3, t4);
+ TESTINST4l("beql", 9, 0x80000000, 0x80000000, t3, t4, t5);
+ TESTINST4l("beql", 10, 0xffffffff, 0x80000000, t4, t5, t6);
+ TESTINST4l("beql", 11, 0x256, 0x256, t5, t6, t7);
+ TESTINST4l("beql", 12, 0x55, 0x55, t6, t7, s0);
+ TESTINST4l("beql", 13, 0xfff, 0xdd, s0, s1, s2);
+ TESTINST4l("beql", 14, -1, 0x5, v0, t9, t8);
+ TESTINST4l("beql", 15, -1, -1, t9, t8, a3);
+
+ printf("BGEZALL\n");
+ TESTINST5l("bgezall", 0, 0, v0, v1);
+ TESTINST5l("bgezall", 1, 1, v1, a0);
+ TESTINST5l("bgezall", 2, 0xffffffff, a0, a1);
+ TESTINST5l("bgezall", 3, 0xffffffff, a1, a2);
+ TESTINST5l("bgezall", 4, 0xfffffffe, a2, t0);
+ TESTINST5l("bgezall", 5, 0xffffffff, a3, t0);
+ TESTINST5l("bgezall", 6, 0x5, t0, t1);
+ TESTINST5l("bgezall", 7, -3, t1, t2);
+ TESTINST5l("bgezall", 8, 125, t2, t3);
+ TESTINST5l("bgezall", 9, 0x80000000, t3, t4);
+ TESTINST5l("bgezall", 10, 0xffffffff, t4, t5);
+ TESTINST5l("bgezall", 11, 0x256, t5, t6);
+ TESTINST5l("bgezall", 12, 0x55, t6, t7);
+ TESTINST5l("bgezall", 13, 0xfff, s0, s1);
+ TESTINST5l("bgezall", 14, -1, v0, t9);
+ TESTINST5l("bgezall", 15, -1, t9, t8);
+
+ printf("BGEZL\n");
+ TESTINST5l("bgezl", 0, 0, v0, v1);
+ TESTINST5l("bgezl", 1, 1, v1, a0);
+ TESTINST5l("bgezl", 2, 0xffffffff, a0, a1);
+ TESTINST5l("bgezl", 3, 0xffffffff, a1, a2);
+ TESTINST5l("bgezl", 4, 0xfffffffe, a2, t0);
+ TESTINST5l("bgezl", 5, 0xffffffff, a3, t0);
+ TESTINST5l("bgezl", 6, 0x5, t0, t1);
+ TESTINST5l("bgezl", 7, -3, t1, t2);
+ TESTINST5l("bgezl", 8, 125, t2, t3);
+ TESTINST5l("bgezl", 9, 0x80000000, t3, t4);
+ TESTINST5l("bgezl", 10, 0xffffffff, t4, t5);
+ TESTINST5l("bgezl", 11, 0x256, t5, t6);
+ TESTINST5l("bgezl", 12, 0x55, t6, t7);
+ TESTINST5l("bgezl", 13, 0xfff, s0, s1);
+ TESTINST5l("bgezl", 14, -1, v0, t9);
+ TESTINST5l("bgezl", 15, -1, t9, t8);
+
+ printf("BGTZL\n");
+ TESTINST5l("bgtzl", 0, 0, v0, v1);
+ TESTINST5l("bgtzl", 1, 1, v1, a0);
+ TESTINST5l("bgtzl", 2, 0xffffffff, a0, a1);
+ TESTINST5l("bgtzl", 3, 0xffffffff, a1, a2);
+ TESTINST5l("bgtzl", 4, 0xfffffffe, a2, t0);
+ TESTINST5l("bgtzl", 5, 0xffffffff, a3, t0);
+ TESTINST5l("bgtzl", 6, 0x5, t0, t1);
+ TESTINST5l("bgtzl", 7, -3, t1, t2);
+ TESTINST5l("bgtzl", 8, 125, t2, t3);
+ TESTINST5l("bgtzl", 9, 0x80000000, t3, t4);
+ TESTINST5l("bgtzl", 10, 0xffffffff, t4, t5);
+ TESTINST5l("bgtzl", 11, 0x256, t5, t6);
+ TESTINST5l("bgtzl", 12, 0x55, t6, t7);
+ TESTINST5l("bgtzl", 13, 0xfff, s0, s1);
+ TESTINST5l("bgtzl", 14, -1, v0, t9);
+ TESTINST5l("bgtzl", 15, -1, t9, t8);
+
+ printf("BLEZL\n");
+ TESTINST5l("blezl", 0, 0, v0, v1);
+ TESTINST5l("blezl", 1, 1, v1, a0);
+ TESTINST5l("blezl", 2, 0xffffffff, a0, a1);
+ TESTINST5l("blezl", 3, 0xffffffff, a1, a2);
+ TESTINST5l("blezl", 4, 0xfffffffe, a2, t0);
+ TESTINST5l("blezl", 5, 0xffffffff, a3, t0);
+ TESTINST5l("blezl", 6, 0x5, t0, t1);
+ TESTINST5l("blezl", 7, -3, t1, t2);
+ TESTINST5l("blezl", 8, 125, t2, t3);
+ TESTINST5l("blezl", 9, 0x80000000, t3, t4);
+ TESTINST5l("blezl", 10, 0xffffffff, t4, t5);
+ TESTINST5l("blezl", 11, 0x256, t5, t6);
+ TESTINST5l("blezl", 12, 0x55, t6, t7);
+ TESTINST5l("blezl", 13, 0xfff, s0, s1);
+ TESTINST5l("blezl", 14, -1, v0, t9);
+ TESTINST5l("blezl", 15, -1, t9, t8);
+
+ printf("BGEZALL\n");
+ TESTINST6l("bgezall", 0, 0, v0, v1);
+ TESTINST6l("bgezall", 1, 1, v1, a0);
+ TESTINST6l("bgezall", 2, 0xffffffff, a0, a1);
+ TESTINST6l("bgezall", 3, 0xffffffff, a1, a2);
+ TESTINST6l("bgezall", 4, 0xfffffffe, a2, t0);
+ TESTINST6l("bgezall", 5, 0xffffffff, a3, t0);
+ TESTINST6l("bgezall", 6, 0x5, t0, t1);
+ TESTINST6l("bgezall", 7, -3, t1, t2);
+ TESTINST6l("bgezall", 8, 125, t2, t3);
+ TESTINST6l("bgezall", 9, 0x80000000, t3, t4);
+ TESTINST6l("bgezall", 10, 0xffffffff, t4, t5);
+ TESTINST6l("bgezall", 11, 0x256, t5, t6);
+ TESTINST6l("bgezall", 12, 0x55, t6, t7);
+ TESTINST6l("bgezall", 13, 0xfff, s0, s1);
+ TESTINST6l("bgezall", 14, -1, v0, t9);
+ TESTINST6l("bgezall", 15, -1, t9, t8);
+
+ printf("BLTZL\n");
+ TESTINST5l("bltzl", 0, 0, v0, v1);
+ TESTINST5l("bltzl", 1, 1, v1, a0);
+ TESTINST5l("bltzl", 2, 0xffffffff, a0, a1);
+ TESTINST5l("bltzl", 3, 0xffffffff, a1, a2);
+ TESTINST5l("bltzl", 4, 0xfffffffe, a2, t0);
+ TESTINST5l("bltzl", 5, 0xffffffff, a3, t0);
+ TESTINST5l("bltzl", 6, 0x5, t0, t1);
+ TESTINST5l("bltzl", 7, -3, t1, t2);
+ TESTINST5l("bltzl", 8, 125, t2, t3);
+ TESTINST5l("bltzl", 9, 0x80000000, t3, t4);
+ TESTINST5l("bltzl", 10, 0xffffffff, t4, t5);
+ TESTINST5l("bltzl", 11, 0x256, t5, t6);
+ TESTINST5l("bltzl", 12, 0x55, t6, t7);
+ TESTINST5l("bltzl", 13, 0xfff, s0, s1);
+ TESTINST5l("bltzl", 14, -1, v0, t9);
+ TESTINST5l("bltzl", 15, -1, t9, t8);
+
+ printf("BNEL\n");
+ TESTINST4l("bnel", 0, 0, 1, v0, v1, a0);
+ TESTINST4l("bnel", 1, 1, 1, v1, a0, a1);
+ TESTINST4l("bnel", 2, 0xffffffff, 0xffffffff, a0, a1, a2);
+ TESTINST4l("bnel", 3, 0xffffffff, 0xfffffffe, a1, a2, a3);
+ TESTINST4l("bnel", 4, 0xfffffffe, 0xffffffff, a2, t0, t1);
+ TESTINST4l("bnel", 5, 0xffffffff, 0xffffffff, a3, t0, t1);
+ TESTINST4l("bnel", 6, 0x5, 0x5, t0, t1, t2);
+ TESTINST4l("bnel", 7, -3, -4, t1, t2, t3);
+ TESTINST4l("bnel", 8, 125, 125, t2, t3, t4);
+ TESTINST4l("bnel", 9, 0x80000000, 0x80000000, t3, t4, t5);
+ TESTINST4l("bnel", 10, 0xffffffff, 0x80000000, t4, t5, t6);
+ TESTINST4l("bnel", 11, 0x256, 0x256, t5, t6, t7);
+ TESTINST4l("bnel", 12, 0x55, 0x55, t6, t7, s0);
+ TESTINST4l("bnel", 13, 0xfff, 0xdd, s0, s1, s2);
+ TESTINST4l("bnel", 14, -1, 0x5, v0, t9, t8);
+ TESTINST4l("bnel", 15, -1, -1, t9, t8, a3);
+
+ printf("j, jal, jr \n");
+ TESTINST3j(0, v0);
+ TESTINST3j(1, v1);
+ TESTINST3j(2, a0);
+ TESTINST3j(3, a1);
+ TESTINST3j(4, a2);
+ TESTINST3j(5, a3);
+ TESTINST3j(6, a0);
+ TESTINST3j(7, t1);
+ TESTINST3j(8, t2);
+ TESTINST3j(9, t3);
+ TESTINST3j(10, t4);
+ TESTINST3j(11, t5);
+ TESTINST3j(12, t6);
+ TESTINST3j(13, t7);
+ TESTINST3j(14, s0);
+ TESTINST3j(15, s1);
+ TESTINST3j(16, s2);
+ TESTINST3j(17, s3);
+ TESTINST3j(18, s4);
+ TESTINST3j(19, s5);
+ TESTINST3j(20, s6);
+ TESTINST3j(21, s7);
+ TESTINST3j(22, t8);
+ TESTINST3j(23, t9);
+
+ printf("j, jalr, jr \n");
+ TESTINST3ja(0, v0);
+ TESTINST3ja(1, v1);
+ TESTINST3ja(2, a0);
+ TESTINST3ja(3, a1);
+ TESTINST3ja(4, a2);
+ TESTINST3ja(5, a3);
+ TESTINST3ja(6, a0);
+ TESTINST3ja(7, a3);
+ TESTINST3ja(8, t2);
+ TESTINST3ja(9, t3);
+ TESTINST3ja(10, t4);
+ TESTINST3ja(11, t5);
+ TESTINST3ja(12, t6);
+ TESTINST3ja(13, t7);
+ TESTINST3ja(14, s0);
+ TESTINST3ja(15, s1);
+ TESTINST3ja(16, s2);
+ TESTINST3ja(17, s3);
+ TESTINST3ja(18, s4);
+ TESTINST3ja(19, s5);
+ TESTINST3ja(20, s6);
+ TESTINST3ja(21, s7);
+ TESTINST3ja(22, t8);
+ TESTINST3ja(23, t9);
+
+ return 0;
+}
--- /dev/null
+b
+B :: 1, RSval: 0
+B :: 2, RSval: 1
+B :: 3, RSval: 2
+B :: 4, RSval: 3
+B :: 5, RSval: 4
+B :: 6, RSval: 5
+B :: 7, RSval: 6
+B :: 8, RSval: 7
+B :: 9, RSval: 8
+B :: 10, RSval: 9
+B :: 11, RSval: 10
+B :: 12, RSval: 11
+B :: 13, RSval: 12
+B :: 14, RSval: 13
+B :: 15, RSval: 14
+B :: 16, RSval: 15
+B :: 17, RSval: 16
+B :: 18, RSval: 17
+B :: 19, RSval: 18
+B :: 20, RSval: 19
+B :: 21, RSval: 20
+B :: 22, RSval: 21
+B :: 23, RSval: 22
+B :: 24, RSval: 23
+b
+B :: 3, RSval: 0
+B :: 4, RSval: 1
+B :: 5, RSval: 2
+B :: 6, RSval: 3
+B :: 7, RSval: 4
+B :: 8, RSval: 5
+B :: 9, RSval: 6
+B :: 10, RSval: 7
+B :: 11, RSval: 8
+B :: 12, RSval: 9
+B :: 13, RSval: 10
+B :: 14, RSval: 11
+B :: 15, RSval: 12
+B :: 16, RSval: 13
+B :: 17, RSval: 14
+B :: 18, RSval: 15
+B :: 19, RSval: 16
+B :: 20, RSval: 17
+B :: 21, RSval: 18
+B :: 22, RSval: 19
+B :: 23, RSval: 20
+B :: 24, RSval: 21
+B :: 25, RSval: 22
+B :: 26, RSval: 23
+b, bal, jr
+B BAL JR :: 6, RSval: 0
+B BAL JR :: 7, RSval: 1
+B BAL JR :: 8, RSval: 2
+B BAL JR :: 9, RSval: 3
+B BAL JR :: 10, RSval: 4
+B BAL JR :: 11, RSval: 5
+B BAL JR :: 12, RSval: 6
+B BAL JR :: 13, RSval: 7
+B BAL JR :: 14, RSval: 8
+B BAL JR :: 15, RSval: 9
+B BAL JR :: 16, RSval: 10
+B BAL JR :: 17, RSval: 11
+B BAL JR :: 18, RSval: 12
+B BAL JR :: 19, RSval: 13
+B BAL JR :: 20, RSval: 14
+B BAL JR :: 21, RSval: 15
+B BAL JR :: 22, RSval: 16
+B BAL JR :: 23, RSval: 17
+B BAL JR :: 24, RSval: 18
+B BAL JR :: 25, RSval: 19
+B BAL JR :: 26, RSval: 20
+B BAL JR :: 27, RSval: 21
+B BAL JR :: 28, RSval: 22
+B BAL JR :: 29, RSval: 23
+beq
+beq :: 6, RSval: 0, RTval: 1
+beq :: 2, RSval: 1, RTval: 1
+beq :: 3, RSval: -1, RTval: -1
+beq :: 9, RSval: -1, RTval: -2
+beq :: 10, RSval: -2, RTval: -1
+beq :: 6, RSval: -1, RTval: -1
+beq :: 7, RSval: 5, RTval: 5
+beq :: 13, RSval: -3, RTval: -4
+beq :: 9, RSval: 125, RTval: 125
+beq :: 10, RSval: -2147483648, RTval: -2147483648
+beq :: 16, RSval: -1, RTval: -2147483648
+beq :: 12, RSval: 598, RTval: 598
+beq :: 13, RSval: 85, RTval: 85
+beq :: 19, RSval: 4095, RTval: 221
+beq :: 20, RSval: -1, RTval: 5
+beq :: 16, RSval: -1, RTval: -1
+bne
+bne :: 1, RSval: 0, RTval: 1
+bne :: 7, RSval: 1, RTval: 1
+bne :: 8, RSval: -1, RTval: -1
+bne :: 4, RSval: -1, RTval: -2
+bne :: 5, RSval: -2, RTval: -1
+bne :: 11, RSval: -1, RTval: -1
+bne :: 12, RSval: 5, RTval: 5
+bne :: 8, RSval: -3, RTval: -4
+bne :: 14, RSval: 125, RTval: 125
+bne :: 15, RSval: -2147483648, RTval: -2147483648
+bne :: 11, RSval: -1, RTval: -2147483648
+bne :: 17, RSval: 598, RTval: 598
+bne :: 18, RSval: 85, RTval: 85
+bne :: 14, RSval: 4095, RTval: 221
+bne :: 15, RSval: -1, RTval: 5
+bne :: 21, RSval: -1, RTval: -1
+BEQZ
+beqz :: 1, RSval: 0
+beqz :: 7, RSval: 1
+beqz :: 8, RSval: -1
+beqz :: 9, RSval: -1
+beqz :: 10, RSval: -2
+beqz :: 11, RSval: -1
+beqz :: 12, RSval: 5
+beqz :: 13, RSval: -3
+beqz :: 14, RSval: 125
+beqz :: 15, RSval: -2147483648
+beqz :: 16, RSval: -1
+beqz :: 17, RSval: 598
+beqz :: 18, RSval: 85
+beqz :: 19, RSval: 4095
+beqz :: 20, RSval: -1
+beqz :: 21, RSval: -1
+BGEZ
+bgez :: 1, RSval: 0
+bgez :: 2, RSval: 1
+bgez :: 8, RSval: -1
+bgez :: 9, RSval: -1
+bgez :: 10, RSval: -2
+bgez :: 11, RSval: -1
+bgez :: 7, RSval: 5
+bgez :: 13, RSval: -3
+bgez :: 9, RSval: 125
+bgez :: 15, RSval: -2147483648
+bgez :: 16, RSval: -1
+bgez :: 12, RSval: 598
+bgez :: 13, RSval: 85
+bgez :: 14, RSval: 4095
+bgez :: 20, RSval: -1
+bgez :: 21, RSval: -1
+BGTZ
+bgtz :: 6, RSval: 0
+bgtz :: 2, RSval: 1
+bgtz :: 8, RSval: -1
+bgtz :: 9, RSval: -1
+bgtz :: 10, RSval: -2
+bgtz :: 11, RSval: -1
+bgtz :: 7, RSval: 5
+bgtz :: 13, RSval: -3
+bgtz :: 9, RSval: 125
+bgtz :: 15, RSval: -2147483648
+bgtz :: 16, RSval: -1
+bgtz :: 12, RSval: 598
+bgtz :: 13, RSval: 85
+bgtz :: 14, RSval: 4095
+bgtz :: 20, RSval: -1
+bgtz :: 21, RSval: -1
+BLEZ
+blez :: 1, RSval: 0
+blez :: 7, RSval: 1
+blez :: 3, RSval: -1
+blez :: 4, RSval: -1
+blez :: 5, RSval: -2
+blez :: 6, RSval: -1
+blez :: 12, RSval: 5
+blez :: 8, RSval: -3
+blez :: 14, RSval: 125
+blez :: 10, RSval: -2147483648
+blez :: 11, RSval: -1
+blez :: 17, RSval: 598
+blez :: 18, RSval: 85
+blez :: 19, RSval: 4095
+blez :: 15, RSval: -1
+blez :: 16, RSval: -1
+BLTZ
+bltz :: 6, RSval: 0
+bltz :: 7, RSval: 1
+bltz :: 3, RSval: -1
+bltz :: 4, RSval: -1
+bltz :: 5, RSval: -2
+bltz :: 6, RSval: -1
+bltz :: 12, RSval: 5
+bltz :: 8, RSval: -3
+bltz :: 14, RSval: 125
+bltz :: 10, RSval: -2147483648
+bltz :: 11, RSval: -1
+bltz :: 17, RSval: 598
+bltz :: 18, RSval: 85
+bltz :: 19, RSval: 4095
+bltz :: 15, RSval: -1
+bltz :: 16, RSval: -1
+BGEZAL
+bgezal :: 6, RSval: 0
+bgezal :: 7, RSval: 1
+bgezal :: 7, RSval: -1
+bgezal :: 8, RSval: -1
+bgezal :: 9, RSval: -2
+bgezal :: 10, RSval: -1
+bgezal :: 12, RSval: 5
+bgezal :: 12, RSval: -3
+bgezal :: 14, RSval: 125
+bgezal :: 14, RSval: -2147483648
+bgezal :: 15, RSval: -1
+bgezal :: 17, RSval: 598
+bgezal :: 18, RSval: 85
+bgezal :: 19, RSval: 4095
+bgezal :: 19, RSval: -1
+bgezal :: 20, RSval: -1
+BLTZAL
+bltzal :: 5, RSval: 0
+bltzal :: 6, RSval: 1
+bltzal :: 8, RSval: -1
+bltzal :: 9, RSval: -1
+bltzal :: 10, RSval: -2
+bltzal :: 11, RSval: -1
+bltzal :: 11, RSval: 5
+bltzal :: 13, RSval: -3
+bltzal :: 13, RSval: 125
+bltzal :: 15, RSval: -2147483648
+bltzal :: 16, RSval: -1
+bltzal :: 16, RSval: 598
+bltzal :: 17, RSval: 85
+bltzal :: 18, RSval: 4095
+bltzal :: 20, RSval: -1
+bltzal :: 21, RSval: -1
+BNEZ
+bnez :: 6, RSval: 0
+bnez :: 2, RSval: 1
+bnez :: 3, RSval: -1
+bnez :: 4, RSval: -1
+bnez :: 5, RSval: -2
+bnez :: 6, RSval: -1
+bnez :: 7, RSval: 5
+bnez :: 8, RSval: -3
+bnez :: 9, RSval: 125
+bnez :: 10, RSval: -2147483648
+bnez :: 11, RSval: -1
+bnez :: 12, RSval: 598
+bnez :: 13, RSval: 85
+bnez :: 14, RSval: 4095
+bnez :: 15, RSval: -1
+bnez :: 16, RSval: -1
+beql
+beql :: 9, RSval: 0, RTval: 1
+beql :: 2, RSval: 1, RTval: 1
+beql :: 3, RSval: -1, RTval: -1
+beql :: 12, RSval: -1, RTval: -2
+beql :: 13, RSval: -2, RTval: -1
+beql :: 6, RSval: -1, RTval: -1
+beql :: 7, RSval: 5, RTval: 5
+beql :: 16, RSval: -3, RTval: -4
+beql :: 9, RSval: 125, RTval: 125
+beql :: 10, RSval: -2147483648, RTval: -2147483648
+beql :: 19, RSval: -1, RTval: -2147483648
+beql :: 12, RSval: 598, RTval: 598
+beql :: 13, RSval: 85, RTval: 85
+beql :: 22, RSval: 4095, RTval: 221
+beql :: 23, RSval: -1, RTval: 5
+beql :: 16, RSval: -1, RTval: -1
+BGEZALL
+bgezall :: 1, RSval: 0
+bgezall :: 2, RSval: 1
+bgezall :: 11, RSval: -1
+bgezall :: 12, RSval: -1
+bgezall :: 13, RSval: -2
+bgezall :: 14, RSval: -1
+bgezall :: 7, RSval: 5
+bgezall :: 16, RSval: -3
+bgezall :: 9, RSval: 125
+bgezall :: 18, RSval: -2147483648
+bgezall :: 19, RSval: -1
+bgezall :: 12, RSval: 598
+bgezall :: 13, RSval: 85
+bgezall :: 14, RSval: 4095
+bgezall :: 23, RSval: -1
+bgezall :: 24, RSval: -1
+BGEZL
+bgezl :: 1, RSval: 0
+bgezl :: 2, RSval: 1
+bgezl :: 11, RSval: -1
+bgezl :: 12, RSval: -1
+bgezl :: 13, RSval: -2
+bgezl :: 14, RSval: -1
+bgezl :: 7, RSval: 5
+bgezl :: 16, RSval: -3
+bgezl :: 9, RSval: 125
+bgezl :: 18, RSval: -2147483648
+bgezl :: 19, RSval: -1
+bgezl :: 12, RSval: 598
+bgezl :: 13, RSval: 85
+bgezl :: 14, RSval: 4095
+bgezl :: 23, RSval: -1
+bgezl :: 24, RSval: -1
+BGTZL
+bgtzl :: 9, RSval: 0
+bgtzl :: 2, RSval: 1
+bgtzl :: 11, RSval: -1
+bgtzl :: 12, RSval: -1
+bgtzl :: 13, RSval: -2
+bgtzl :: 14, RSval: -1
+bgtzl :: 7, RSval: 5
+bgtzl :: 16, RSval: -3
+bgtzl :: 9, RSval: 125
+bgtzl :: 18, RSval: -2147483648
+bgtzl :: 19, RSval: -1
+bgtzl :: 12, RSval: 598
+bgtzl :: 13, RSval: 85
+bgtzl :: 14, RSval: 4095
+bgtzl :: 23, RSval: -1
+bgtzl :: 24, RSval: -1
+BLEZL
+blezl :: 1, RSval: 0
+blezl :: 10, RSval: 1
+blezl :: 3, RSval: -1
+blezl :: 4, RSval: -1
+blezl :: 5, RSval: -2
+blezl :: 6, RSval: -1
+blezl :: 15, RSval: 5
+blezl :: 8, RSval: -3
+blezl :: 17, RSval: 125
+blezl :: 10, RSval: -2147483648
+blezl :: 11, RSval: -1
+blezl :: 20, RSval: 598
+blezl :: 21, RSval: 85
+blezl :: 22, RSval: 4095
+blezl :: 15, RSval: -1
+blezl :: 16, RSval: -1
+BGEZALL
+bgezall :: 9, RSval: 0
+bgezall :: 10, RSval: 1
+bgezall :: 10, RSval: -1
+bgezall :: 11, RSval: -1
+bgezall :: 12, RSval: -2
+bgezall :: 13, RSval: -1
+bgezall :: 15, RSval: 5
+bgezall :: 15, RSval: -3
+bgezall :: 17, RSval: 125
+bgezall :: 17, RSval: -2147483648
+bgezall :: 18, RSval: -1
+bgezall :: 20, RSval: 598
+bgezall :: 21, RSval: 85
+bgezall :: 22, RSval: 4095
+bgezall :: 22, RSval: -1
+bgezall :: 23, RSval: -1
+BLTZL
+bltzl :: 9, RSval: 0
+bltzl :: 10, RSval: 1
+bltzl :: 3, RSval: -1
+bltzl :: 4, RSval: -1
+bltzl :: 5, RSval: -2
+bltzl :: 6, RSval: -1
+bltzl :: 15, RSval: 5
+bltzl :: 8, RSval: -3
+bltzl :: 17, RSval: 125
+bltzl :: 10, RSval: -2147483648
+bltzl :: 11, RSval: -1
+bltzl :: 20, RSval: 598
+bltzl :: 21, RSval: 85
+bltzl :: 22, RSval: 4095
+bltzl :: 15, RSval: -1
+bltzl :: 16, RSval: -1
+BNEL
+bnel :: 1, RSval: 0, RTval: 1
+bnel :: 10, RSval: 1, RTval: 1
+bnel :: 11, RSval: -1, RTval: -1
+bnel :: 4, RSval: -1, RTval: -2
+bnel :: 5, RSval: -2, RTval: -1
+bnel :: 14, RSval: -1, RTval: -1
+bnel :: 15, RSval: 5, RTval: 5
+bnel :: 8, RSval: -3, RTval: -4
+bnel :: 17, RSval: 125, RTval: 125
+bnel :: 18, RSval: -2147483648, RTval: -2147483648
+bnel :: 11, RSval: -1, RTval: -2147483648
+bnel :: 20, RSval: 598, RTval: 598
+bnel :: 21, RSval: 85, RTval: 85
+bnel :: 14, RSval: 4095, RTval: 221
+bnel :: 15, RSval: -1, RTval: 5
+bnel :: 24, RSval: -1, RTval: -1
+j, jal, jr
+J JAL JR :: 6, RSval: 0
+J JAL JR :: 7, RSval: 1
+J JAL JR :: 8, RSval: 2
+J JAL JR :: 9, RSval: 3
+J JAL JR :: 10, RSval: 4
+J JAL JR :: 11, RSval: 5
+J JAL JR :: 12, RSval: 6
+J JAL JR :: 13, RSval: 7
+J JAL JR :: 14, RSval: 8
+J JAL JR :: 15, RSval: 9
+J JAL JR :: 16, RSval: 10
+J JAL JR :: 17, RSval: 11
+J JAL JR :: 18, RSval: 12
+J JAL JR :: 19, RSval: 13
+J JAL JR :: 20, RSval: 14
+J JAL JR :: 21, RSval: 15
+J JAL JR :: 22, RSval: 16
+J JAL JR :: 23, RSval: 17
+J JAL JR :: 24, RSval: 18
+J JAL JR :: 25, RSval: 19
+J JAL JR :: 26, RSval: 20
+J JAL JR :: 27, RSval: 21
+J JAL JR :: 28, RSval: 22
+J JAL JR :: 29, RSval: 23
+j, jalr, jr
+J JALR JR :: 6, RSval: 0
+J JALR JR :: 7, RSval: 1
+J JALR JR :: 8, RSval: 2
+J JALR JR :: 9, RSval: 3
+J JALR JR :: 10, RSval: 4
+J JALR JR :: 11, RSval: 5
+J JALR JR :: 12, RSval: 6
+J JALR JR :: 13, RSval: 7
+J JALR JR :: 14, RSval: 8
+J JALR JR :: 15, RSval: 9
+J JALR JR :: 16, RSval: 10
+J JALR JR :: 17, RSval: 11
+J JALR JR :: 18, RSval: 12
+J JALR JR :: 19, RSval: 13
+J JALR JR :: 20, RSval: 14
+J JALR JR :: 21, RSval: 15
+J JALR JR :: 22, RSval: 16
+J JALR JR :: 23, RSval: 17
+J JALR JR :: 24, RSval: 18
+J JALR JR :: 25, RSval: 19
+J JALR JR :: 26, RSval: 20
+J JALR JR :: 27, RSval: 21
+J JALR JR :: 28, RSval: 22
+J JALR JR :: 29, RSval: 23
--- /dev/null
+prog: branches
+vgopts: -q
--- /dev/null
+#! /bin/sh
+
+../filter_stderr
+
--- /dev/null
+#include <stdio.h>
+
+typedef enum {
+ CEILWS=0, CEILWD,
+ FLOORWS, FLOORWD,
+ ROUNDWS, ROUNDWD,
+ TRUNCWS, TRUNCWD
+} flt_dir_op_t;
+
+typedef enum {
+ CVTDS, CVTDW,
+ CVTSD, CVTSW,
+ CVTWS, CVTWD
+} flt_round_op_t;
+
+typedef enum {
+ TO_NEAREST=0, TO_ZERO, TO_PLUS_INFINITY, TO_MINUS_INFINITY } round_mode_t;
+char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
+
+
+const char *flt_dir_op_names[] = {
+ "ceil.w.s", "ceil.w.d",
+ "floor.w.s", "floor.w.d",
+ "round.w.s", "round.w.d",
+ "trunc.w.s", "trunc.w.d"
+};
+
+const char *flt_round_op_names[] = {
+ "cvt.d.s", "cvt.d.w",
+ "cvt.s.d", "cvt.s.w",
+ "cvt.w.s", "cvt.w.d"
+};
+
+const double fs_d[] = {
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76,
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04,
+};
+
+const float fs_f[] = {
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76,
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04,
+};
+
+const int fs_w[] = {
+ 0, 456, 3, -1,
+ 0xffffffff, 356, 1000000000, -5786,
+ 1752, 24575, 10, -248562,
+ -45786, 456, 34, 45786,
+ 1752065, 107, -45667, -7,
+ -347856, 0x80000000, 0xFFFFFFF, 23,
+};
+
+#define BINOP(op) \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fd) : "f"(f) , "f"(fB));
+
+#define UNOPdd(op) \
+ fd_d = 0; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fd_d) : "f"(fs_d[i]));
+
+#define UNOPff(op) \
+ fd_f = 0; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fd_f) : "f"(fs_f[i]));
+
+#define UNOPfd(op) \
+ fd_d = 0; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fd_d) : "f"(fs_f[i]));
+
+#define UNOPdf(op) \
+ fd_f = 0; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fd_f) : "f"(fs_d[i]));
+
+#define UNOPfw(op) \
+ fd_w = 0; \
+ __asm__ volatile( \
+ op" $f0, %1\n\t" \
+ "mfc1 %0, $f0\n\t" \
+ : "=r"(fd_w) : "f"(fs_f[i]) \
+ : "$f0");
+
+#define UNOPdw(op) \
+ fd_w = 0; \
+ __asm__ volatile( \
+ op" $f0, %1\n\t" \
+ "mfc1 %0, $f0\n\t" \
+ : "=r"(fd_w) : "f"(fs_d[i]) \
+ : "$f0");
+
+#define UNOPwd(op) \
+ fd_d = 0; \
+ __asm__ volatile( \
+ "mtc1 %1, $f0\n\t" \
+ op" %0, $f0\n\t" \
+ : "=f"(fd_d) : "r"(fs_w[i]) \
+ : "$f0", "$f1");
+
+#define UNOPwf(op) \
+ fd_f = 0; \
+ __asm__ volatile( \
+ "mtc1 %1, $f0\n\t" \
+ op" %0, $f0\n\t" \
+ : "=f"(fd_f) : "r"(fs_w[i]) \
+ : "$f0");
+
+void set_rounding_mode(round_mode_t mode)
+{
+ switch(mode) {
+ case TO_NEAREST:
+ __asm__ volatile("cfc1 $t0, $31\n\t"
+ "srl $t0, 2\n\t"
+ "sll $t0, 2\n\t"
+ "ctc1 $t0, $31\n\t");
+
+ break;
+ case TO_ZERO:
+ __asm__ volatile("cfc1 $t0, $31\n\t"
+ "srl $t0, 2\n\t"
+ "sll $t0, 2\n\t"
+ "addiu $t0, 1\n\t"
+ "ctc1 $t0, $31\n\t");
+ break;
+ case TO_PLUS_INFINITY:
+ __asm__ volatile("cfc1 $t0, $31\n\t"
+ "srl $t0, 2\n\t"
+ "sll $t0, 2\n\t"
+ "addiu $t0, 2\n\t"
+ "ctc1 $t0, $31\n\t");
+ break;
+ case TO_MINUS_INFINITY:
+ __asm__ volatile("cfc1 $t0, $31\n\t"
+ "srl $t0, 2\n\t"
+ "sll $t0, 2\n\t"
+ "addiu $t0, 3\n\t"
+ "ctc1 $t0, $31\n\t");
+ break;
+ }
+}
+
+int directedRoundingMode(flt_dir_op_t op) {
+ double fd_d = 0;
+ float fd_f =0;
+ int fd_w = 0;
+ int i;
+ for (i = 0; i < 24; i++) {
+ switch(op) {
+ case CEILWS:
+ UNOPfw("ceil.w.s");
+ printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+ break;
+ case CEILWD:
+ UNOPdw("ceil.w.d");
+ printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+ break;
+ case FLOORWS:
+ UNOPfw("floor.w.s");
+ printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+ break;
+ case FLOORWD:
+ UNOPdw("floor.w.d");
+ printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+ break;
+ case ROUNDWS:
+ UNOPfw("round.w.s");
+ printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+ break;
+ case ROUNDWD:
+ UNOPdw("round.w.d");
+ printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+ break;
+ case TRUNCWS:
+ UNOPfw("trunc.w.s");
+ printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+ break;
+ case TRUNCWD:
+ UNOPdw("trunc.w.d");
+ printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+ break;
+ default:
+ printf("error\n");
+ break;
+ }
+ }
+ return 0;
+}
+
+int FCSRRoundingMode(flt_round_op_t op1)
+{
+ double fd_d = 0;
+ float fd_f = 0;
+ int fd_w = 0;
+ int i;
+ round_mode_t rm;
+ for (rm = TO_NEAREST; rm <= TO_MINUS_INFINITY; rm ++)
+ {
+ set_rounding_mode(rm);
+ printf("roundig mode: %s\n", round_mode_name[rm]);
+ for (i = 0; i < 24; i++)
+ {
+ set_rounding_mode(rm);
+ switch(op1) {
+ case CVTDS:
+ UNOPfd("cvt.d.s");
+ printf("%s %lf %lf\n", flt_round_op_names[op1], fd_d, fs_f[i]);
+ break;
+ case CVTDW:
+ UNOPwd("cvt.d.w");
+ printf("%s %lf %d\n", flt_round_op_names[op1], fd_d, fs_w[i]);
+ break;
+ case CVTSD:
+ UNOPdf("cvt.s.d");
+ printf("%s %f %lf\n", flt_round_op_names[op1], fd_f, fs_d[i]);
+ break;
+ case CVTSW:
+ UNOPwf("cvt.s.w");
+ printf("%s %f %d\n", flt_round_op_names[op1], fd_f, fs_w[i]);
+ break;
+ case CVTWS:
+ UNOPfw("cvt.w.s");
+ printf("%s %d %f\n", flt_round_op_names[op1], fd_w, fs_f[i]);
+ break;
+ case CVTWD:
+ UNOPdw("cvt.w.d");
+ printf("%s %d %lf\n", flt_round_op_names[op1], fd_w, fs_d[i]);
+ break;
+ default:
+ printf("error\n");
+ break;
+ }
+ }
+ }
+ return 0;
+}
+
+int main()
+{
+ flt_dir_op_t op;
+ flt_round_op_t op1;
+
+ printf("-------------------------- %s --------------------------\n",
+ "test FPU Conversion Operations Using a Directed Rounding Mode");
+ for (op = CEILWS; op <= TRUNCWD; op++) {
+ directedRoundingMode(op);
+ }
+
+ printf("-------------------------- %s --------------------------\n",
+ "test FPU Conversion Operations Using the FCSR Rounding Mode");
+ for (op1 = CVTDS; op1 <= CVTWD; op1++) {
+ FCSRRoundingMode(op1);
+ }
+ return 0;
+}
--- /dev/null
+-------------------------- test FPU Conversion Operations Using a Directed Rounding Mode --------------------------
+ceil.w.s 0 0.000000
+ceil.w.s 457 456.248962
+ceil.w.s 3 3.000000
+ceil.w.s -1 -1.000000
+ceil.w.s 1385 1384.599976
+ceil.w.s -7 -7.294568
+ceil.w.s 1000000000 1000000000.000000
+ceil.w.s -5786 -5786.470215
+ceil.w.s 1752 1752.000000
+ceil.w.s 1 0.002457
+ceil.w.s 1 0.000000
+ceil.w.s -248562 -248562.765625
+ceil.w.s -45786 -45786.476562
+ceil.w.s 457 456.248962
+ceil.w.s 35 34.000462
+ceil.w.s 45787 45786.476562
+ceil.w.s 1752065 1752065.000000
+ceil.w.s 107 107.000000
+ceil.w.s -45667 -45667.238281
+ceil.w.s -7 -7.294568
+ceil.w.s -347856 -347856.468750
+ceil.w.s 356048 356047.562500
+ceil.w.s -1 -1.000000
+ceil.w.s 24 23.040001
+ceil.w.d 0 0.000000
+ceil.w.d 457 456.248956
+ceil.w.d 3 3.000000
+ceil.w.d -1 -1.000000
+ceil.w.d 1385 1384.600000
+ceil.w.d -7 -7.294568
+ceil.w.d 1000000000 1000000000.000000
+ceil.w.d -5786 -5786.470000
+ceil.w.d 1752 1752.000000
+ceil.w.d 1 0.002458
+ceil.w.d 1 0.000000
+ceil.w.d -248562 -248562.760000
+ceil.w.d -45786 -45786.476000
+ceil.w.d 457 456.248956
+ceil.w.d 35 34.000460
+ceil.w.d 45787 45786.476000
+ceil.w.d 1752065 1752065.000000
+ceil.w.d 107 107.000000
+ceil.w.d -45667 -45667.240000
+ceil.w.d -7 -7.294568
+ceil.w.d -347856 -347856.475000
+ceil.w.d 356048 356047.560000
+ceil.w.d -1 -1.000000
+ceil.w.d 24 23.040000
+floor.w.s 0 0.000000
+floor.w.s 456 456.248962
+floor.w.s 3 3.000000
+floor.w.s -1 -1.000000
+floor.w.s 1384 1384.599976
+floor.w.s -8 -7.294568
+floor.w.s 1000000000 1000000000.000000
+floor.w.s -5787 -5786.470215
+floor.w.s 1752 1752.000000
+floor.w.s 0 0.002457
+floor.w.s 0 0.000000
+floor.w.s -248563 -248562.765625
+floor.w.s -45787 -45786.476562
+floor.w.s 456 456.248962
+floor.w.s 34 34.000462
+floor.w.s 45786 45786.476562
+floor.w.s 1752065 1752065.000000
+floor.w.s 107 107.000000
+floor.w.s -45668 -45667.238281
+floor.w.s -8 -7.294568
+floor.w.s -347857 -347856.468750
+floor.w.s 356047 356047.562500
+floor.w.s -1 -1.000000
+floor.w.s 23 23.040001
+floor.w.d 0 0.000000
+floor.w.d 456 456.248956
+floor.w.d 3 3.000000
+floor.w.d -1 -1.000000
+floor.w.d 1384 1384.600000
+floor.w.d -8 -7.294568
+floor.w.d 1000000000 1000000000.000000
+floor.w.d -5787 -5786.470000
+floor.w.d 1752 1752.000000
+floor.w.d 0 0.002458
+floor.w.d 0 0.000000
+floor.w.d -248563 -248562.760000
+floor.w.d -45787 -45786.476000
+floor.w.d 456 456.248956
+floor.w.d 34 34.000460
+floor.w.d 45786 45786.476000
+floor.w.d 1752065 1752065.000000
+floor.w.d 107 107.000000
+floor.w.d -45668 -45667.240000
+floor.w.d -8 -7.294568
+floor.w.d -347857 -347856.475000
+floor.w.d 356047 356047.560000
+floor.w.d -1 -1.000000
+floor.w.d 23 23.040000
+round.w.s 0 0.000000
+round.w.s 456 456.248962
+round.w.s 3 3.000000
+round.w.s -1 -1.000000
+round.w.s 1385 1384.599976
+round.w.s -7 -7.294568
+round.w.s 1000000000 1000000000.000000
+round.w.s -5786 -5786.470215
+round.w.s 1752 1752.000000
+round.w.s 0 0.002457
+round.w.s 0 0.000000
+round.w.s -248563 -248562.765625
+round.w.s -45786 -45786.476562
+round.w.s 456 456.248962
+round.w.s 34 34.000462
+round.w.s 45786 45786.476562
+round.w.s 1752065 1752065.000000
+round.w.s 107 107.000000
+round.w.s -45667 -45667.238281
+round.w.s -7 -7.294568
+round.w.s -347856 -347856.468750
+round.w.s 356048 356047.562500
+round.w.s -1 -1.000000
+round.w.s 23 23.040001
+round.w.d 0 0.000000
+round.w.d 456 456.248956
+round.w.d 3 3.000000
+round.w.d -1 -1.000000
+round.w.d 1385 1384.600000
+round.w.d -7 -7.294568
+round.w.d 1000000000 1000000000.000000
+round.w.d -5786 -5786.470000
+round.w.d 1752 1752.000000
+round.w.d 0 0.002458
+round.w.d 0 0.000000
+round.w.d -248563 -248562.760000
+round.w.d -45786 -45786.476000
+round.w.d 456 456.248956
+round.w.d 34 34.000460
+round.w.d 45786 45786.476000
+round.w.d 1752065 1752065.000000
+round.w.d 107 107.000000
+round.w.d -45667 -45667.240000
+round.w.d -7 -7.294568
+round.w.d -347856 -347856.475000
+round.w.d 356048 356047.560000
+round.w.d -1 -1.000000
+round.w.d 23 23.040000
+trunc.w.s 0 0.000000
+trunc.w.s 456 456.248962
+trunc.w.s 3 3.000000
+trunc.w.s -1 -1.000000
+trunc.w.s 1384 1384.599976
+trunc.w.s -7 -7.294568
+trunc.w.s 1000000000 1000000000.000000
+trunc.w.s -5786 -5786.470215
+trunc.w.s 1752 1752.000000
+trunc.w.s 0 0.002457
+trunc.w.s 0 0.000000
+trunc.w.s -248562 -248562.765625
+trunc.w.s -45786 -45786.476562
+trunc.w.s 456 456.248962
+trunc.w.s 34 34.000462
+trunc.w.s 45786 45786.476562
+trunc.w.s 1752065 1752065.000000
+trunc.w.s 107 107.000000
+trunc.w.s -45667 -45667.238281
+trunc.w.s -7 -7.294568
+trunc.w.s -347856 -347856.468750
+trunc.w.s 356047 356047.562500
+trunc.w.s -1 -1.000000
+trunc.w.s 23 23.040001
+trunc.w.d 0 0.000000
+trunc.w.d 456 456.248956
+trunc.w.d 3 3.000000
+trunc.w.d -1 -1.000000
+trunc.w.d 1384 1384.600000
+trunc.w.d -7 -7.294568
+trunc.w.d 1000000000 1000000000.000000
+trunc.w.d -5786 -5786.470000
+trunc.w.d 1752 1752.000000
+trunc.w.d 0 0.002458
+trunc.w.d 0 0.000000
+trunc.w.d -248562 -248562.760000
+trunc.w.d -45786 -45786.476000
+trunc.w.d 456 456.248956
+trunc.w.d 34 34.000460
+trunc.w.d 45786 45786.476000
+trunc.w.d 1752065 1752065.000000
+trunc.w.d 107 107.000000
+trunc.w.d -45667 -45667.240000
+trunc.w.d -7 -7.294568
+trunc.w.d -347856 -347856.475000
+trunc.w.d 356047 356047.560000
+trunc.w.d -1 -1.000000
+trunc.w.d 23 23.040000
+-------------------------- test FPU Conversion Operations Using the FCSR Rounding Mode --------------------------
+roundig mode: near
+cvt.d.s 0.000000 0.000000
+cvt.d.s 456.248962 456.248962
+cvt.d.s 3.000000 3.000000
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 1384.599976 1384.599976
+cvt.d.s -7.294568 -7.294568
+cvt.d.s 1000000000.000000 1000000000.000000
+cvt.d.s -5786.470215 -5786.470215
+cvt.d.s 1752.000000 1752.000000
+cvt.d.s 0.002457 0.002457
+cvt.d.s 0.000000 0.000000
+cvt.d.s -248562.765625 -248562.765625
+cvt.d.s -45786.476562 -45786.476562
+cvt.d.s 456.248962 456.248962
+cvt.d.s 34.000462 34.000462
+cvt.d.s 45786.476562 45786.476562
+cvt.d.s 1752065.000000 1752065.000000
+cvt.d.s 107.000000 107.000000
+cvt.d.s -45667.238281 -45667.238281
+cvt.d.s -7.294568 -7.294568
+cvt.d.s -347856.468750 -347856.468750
+cvt.d.s 356047.562500 356047.562500
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 23.040001 23.040001
+roundig mode: zero
+cvt.d.s 0.000000 0.000000
+cvt.d.s 456.248962 456.248962
+cvt.d.s 3.000000 3.000000
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 1384.599976 1384.599976
+cvt.d.s -7.294568 -7.294568
+cvt.d.s 1000000000.000000 1000000000.000000
+cvt.d.s -5786.470215 -5786.470215
+cvt.d.s 1752.000000 1752.000000
+cvt.d.s 0.002457 0.002457
+cvt.d.s 0.000000 0.000000
+cvt.d.s -248562.765625 -248562.765625
+cvt.d.s -45786.476562 -45786.476562
+cvt.d.s 456.248962 456.248962
+cvt.d.s 34.000462 34.000462
+cvt.d.s 45786.476562 45786.476562
+cvt.d.s 1752065.000000 1752065.000000
+cvt.d.s 107.000000 107.000000
+cvt.d.s -45667.238281 -45667.238281
+cvt.d.s -7.294568 -7.294568
+cvt.d.s -347856.468750 -347856.468750
+cvt.d.s 356047.562500 356047.562500
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 23.040001 23.040001
+roundig mode: +inf
+cvt.d.s 0.000000 0.000000
+cvt.d.s 456.248962 456.248962
+cvt.d.s 3.000000 3.000000
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 1384.599976 1384.599976
+cvt.d.s -7.294568 -7.294568
+cvt.d.s 1000000000.000000 1000000000.000000
+cvt.d.s -5786.470215 -5786.470215
+cvt.d.s 1752.000000 1752.000000
+cvt.d.s 0.002457 0.002457
+cvt.d.s 0.000000 0.000000
+cvt.d.s -248562.765625 -248562.765625
+cvt.d.s -45786.476562 -45786.476562
+cvt.d.s 456.248962 456.248962
+cvt.d.s 34.000462 34.000462
+cvt.d.s 45786.476562 45786.476562
+cvt.d.s 1752065.000000 1752065.000000
+cvt.d.s 107.000000 107.000000
+cvt.d.s -45667.238281 -45667.238281
+cvt.d.s -7.294568 -7.294568
+cvt.d.s -347856.468750 -347856.468750
+cvt.d.s 356047.562500 356047.562500
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 23.040001 23.040001
+roundig mode: -inf
+cvt.d.s 0.000000 0.000000
+cvt.d.s 456.248962 456.248962
+cvt.d.s 3.000000 3.000000
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 1384.599976 1384.599976
+cvt.d.s -7.294568 -7.294568
+cvt.d.s 1000000000.000000 1000000000.000000
+cvt.d.s -5786.470215 -5786.470215
+cvt.d.s 1752.000000 1752.000000
+cvt.d.s 0.002457 0.002457
+cvt.d.s 0.000000 0.000000
+cvt.d.s -248562.765625 -248562.765625
+cvt.d.s -45786.476562 -45786.476562
+cvt.d.s 456.248962 456.248962
+cvt.d.s 34.000462 34.000462
+cvt.d.s 45786.476562 45786.476562
+cvt.d.s 1752065.000000 1752065.000000
+cvt.d.s 107.000000 107.000000
+cvt.d.s -45667.238281 -45667.238281
+cvt.d.s -7.294568 -7.294568
+cvt.d.s -347856.468750 -347856.468750
+cvt.d.s 356047.562500 356047.562500
+cvt.d.s -1.000000 -1.000000
+cvt.d.s 23.040001 23.040001
+roundig mode: near
+cvt.d.w 0.000000 0
+cvt.d.w 456.000000 456
+cvt.d.w 3.000000 3
+cvt.d.w -1.000000 -1
+cvt.d.w -1.000000 -1
+cvt.d.w 356.000000 356
+cvt.d.w 1000000000.000000 1000000000
+cvt.d.w -5786.000000 -5786
+cvt.d.w 1752.000000 1752
+cvt.d.w 24575.000000 24575
+cvt.d.w 10.000000 10
+cvt.d.w -248562.000000 -248562
+cvt.d.w -45786.000000 -45786
+cvt.d.w 456.000000 456
+cvt.d.w 34.000000 34
+cvt.d.w 45786.000000 45786
+cvt.d.w 1752065.000000 1752065
+cvt.d.w 107.000000 107
+cvt.d.w -45667.000000 -45667
+cvt.d.w -7.000000 -7
+cvt.d.w -347856.000000 -347856
+cvt.d.w -2147483648.000000 -2147483648
+cvt.d.w 268435455.000000 268435455
+cvt.d.w 23.000000 23
+roundig mode: zero
+cvt.d.w 0.000000 0
+cvt.d.w 456.000000 456
+cvt.d.w 3.000000 3
+cvt.d.w -1.000000 -1
+cvt.d.w -1.000000 -1
+cvt.d.w 356.000000 356
+cvt.d.w 1000000000.000000 1000000000
+cvt.d.w -5786.000000 -5786
+cvt.d.w 1752.000000 1752
+cvt.d.w 24575.000000 24575
+cvt.d.w 10.000000 10
+cvt.d.w -248562.000000 -248562
+cvt.d.w -45786.000000 -45786
+cvt.d.w 456.000000 456
+cvt.d.w 34.000000 34
+cvt.d.w 45786.000000 45786
+cvt.d.w 1752065.000000 1752065
+cvt.d.w 107.000000 107
+cvt.d.w -45667.000000 -45667
+cvt.d.w -7.000000 -7
+cvt.d.w -347856.000000 -347856
+cvt.d.w -2147483648.000000 -2147483648
+cvt.d.w 268435455.000000 268435455
+cvt.d.w 23.000000 23
+roundig mode: +inf
+cvt.d.w 0.000000 0
+cvt.d.w 456.000000 456
+cvt.d.w 3.000000 3
+cvt.d.w -1.000000 -1
+cvt.d.w -1.000000 -1
+cvt.d.w 356.000000 356
+cvt.d.w 1000000000.000000 1000000000
+cvt.d.w -5786.000000 -5786
+cvt.d.w 1752.000000 1752
+cvt.d.w 24575.000000 24575
+cvt.d.w 10.000000 10
+cvt.d.w -248562.000000 -248562
+cvt.d.w -45786.000000 -45786
+cvt.d.w 456.000000 456
+cvt.d.w 34.000000 34
+cvt.d.w 45786.000000 45786
+cvt.d.w 1752065.000000 1752065
+cvt.d.w 107.000000 107
+cvt.d.w -45667.000000 -45667
+cvt.d.w -7.000000 -7
+cvt.d.w -347856.000000 -347856
+cvt.d.w -2147483648.000000 -2147483648
+cvt.d.w 268435455.000000 268435455
+cvt.d.w 23.000000 23
+roundig mode: -inf
+cvt.d.w 0.000000 0
+cvt.d.w 456.000000 456
+cvt.d.w 3.000000 3
+cvt.d.w -1.000000 -1
+cvt.d.w -1.000000 -1
+cvt.d.w 356.000000 356
+cvt.d.w 1000000000.000000 1000000000
+cvt.d.w -5786.000000 -5786
+cvt.d.w 1752.000000 1752
+cvt.d.w 24575.000000 24575
+cvt.d.w 10.000000 10
+cvt.d.w -248562.000000 -248562
+cvt.d.w -45786.000000 -45786
+cvt.d.w 456.000000 456
+cvt.d.w 34.000000 34
+cvt.d.w 45786.000000 45786
+cvt.d.w 1752065.000000 1752065
+cvt.d.w 107.000000 107
+cvt.d.w -45667.000000 -45667
+cvt.d.w -7.000000 -7
+cvt.d.w -347856.000000 -347856
+cvt.d.w -2147483648.000000 -2147483648
+cvt.d.w 268435455.000000 268435455
+cvt.d.w 23.000000 23
+roundig mode: near
+cvt.s.d 0.000000 0.000000
+cvt.s.d 456.248962 456.248956
+cvt.s.d 3.000000 3.000000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 1384.599976 1384.600000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d 1000000000.000000 1000000000.000000
+cvt.s.d -5786.470215 -5786.470000
+cvt.s.d 1752.000000 1752.000000
+cvt.s.d 0.002457 0.002458
+cvt.s.d 0.000000 0.000000
+cvt.s.d -248562.765625 -248562.760000
+cvt.s.d -45786.476562 -45786.476000
+cvt.s.d 456.248962 456.248956
+cvt.s.d 34.000462 34.000460
+cvt.s.d 45786.476562 45786.476000
+cvt.s.d 1752065.000000 1752065.000000
+cvt.s.d 107.000000 107.000000
+cvt.s.d -45667.238281 -45667.240000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d -347856.468750 -347856.475000
+cvt.s.d 356047.562500 356047.560000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 23.040001 23.040000
+roundig mode: zero
+cvt.s.d 0.000000 0.000000
+cvt.s.d 456.248932 456.248956
+cvt.s.d 3.000000 3.000000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 1384.599976 1384.600000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d 1000000000.000000 1000000000.000000
+cvt.s.d -5786.469727 -5786.470000
+cvt.s.d 1752.000000 1752.000000
+cvt.s.d 0.002457 0.002458
+cvt.s.d 0.000000 0.000000
+cvt.s.d -248562.750000 -248562.760000
+cvt.s.d -45786.472656 -45786.476000
+cvt.s.d 456.248932 456.248956
+cvt.s.d 34.000458 34.000460
+cvt.s.d 45786.472656 45786.476000
+cvt.s.d 1752065.000000 1752065.000000
+cvt.s.d 107.000000 107.000000
+cvt.s.d -45667.238281 -45667.240000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d -347856.468750 -347856.475000
+cvt.s.d 356047.531250 356047.560000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 23.039999 23.040000
+roundig mode: +inf
+cvt.s.d 0.000000 0.000000
+cvt.s.d 456.248962 456.248956
+cvt.s.d 3.000000 3.000000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 1384.600098 1384.600000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d 1000000000.000000 1000000000.000000
+cvt.s.d -5786.469727 -5786.470000
+cvt.s.d 1752.000000 1752.000000
+cvt.s.d 0.002458 0.002458
+cvt.s.d 0.000000 0.000000
+cvt.s.d -248562.750000 -248562.760000
+cvt.s.d -45786.472656 -45786.476000
+cvt.s.d 456.248962 456.248956
+cvt.s.d 34.000462 34.000460
+cvt.s.d 45786.476562 45786.476000
+cvt.s.d 1752065.000000 1752065.000000
+cvt.s.d 107.000000 107.000000
+cvt.s.d -45667.238281 -45667.240000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d -347856.468750 -347856.475000
+cvt.s.d 356047.562500 356047.560000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 23.040001 23.040000
+roundig mode: -inf
+cvt.s.d 0.000000 0.000000
+cvt.s.d 456.248932 456.248956
+cvt.s.d 3.000000 3.000000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 1384.599976 1384.600000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d 1000000000.000000 1000000000.000000
+cvt.s.d -5786.470215 -5786.470000
+cvt.s.d 1752.000000 1752.000000
+cvt.s.d 0.002457 0.002458
+cvt.s.d 0.000000 0.000000
+cvt.s.d -248562.765625 -248562.760000
+cvt.s.d -45786.476562 -45786.476000
+cvt.s.d 456.248932 456.248956
+cvt.s.d 34.000458 34.000460
+cvt.s.d 45786.472656 45786.476000
+cvt.s.d 1752065.000000 1752065.000000
+cvt.s.d 107.000000 107.000000
+cvt.s.d -45667.242188 -45667.240000
+cvt.s.d -7.294568 -7.294568
+cvt.s.d -347856.500000 -347856.475000
+cvt.s.d 356047.531250 356047.560000
+cvt.s.d -1.000000 -1.000000
+cvt.s.d 23.039999 23.040000
+roundig mode: near
+cvt.s.w 0.000000 0
+cvt.s.w 456.000000 456
+cvt.s.w 3.000000 3
+cvt.s.w -1.000000 -1
+cvt.s.w -1.000000 -1
+cvt.s.w 356.000000 356
+cvt.s.w 1000000000.000000 1000000000
+cvt.s.w -5786.000000 -5786
+cvt.s.w 1752.000000 1752
+cvt.s.w 24575.000000 24575
+cvt.s.w 10.000000 10
+cvt.s.w -248562.000000 -248562
+cvt.s.w -45786.000000 -45786
+cvt.s.w 456.000000 456
+cvt.s.w 34.000000 34
+cvt.s.w 45786.000000 45786
+cvt.s.w 1752065.000000 1752065
+cvt.s.w 107.000000 107
+cvt.s.w -45667.000000 -45667
+cvt.s.w -7.000000 -7
+cvt.s.w -347856.000000 -347856
+cvt.s.w -2147483648.000000 -2147483648
+cvt.s.w 268435456.000000 268435455
+cvt.s.w 23.000000 23
+roundig mode: zero
+cvt.s.w 0.000000 0
+cvt.s.w 456.000000 456
+cvt.s.w 3.000000 3
+cvt.s.w -1.000000 -1
+cvt.s.w -1.000000 -1
+cvt.s.w 356.000000 356
+cvt.s.w 1000000000.000000 1000000000
+cvt.s.w -5786.000000 -5786
+cvt.s.w 1752.000000 1752
+cvt.s.w 24575.000000 24575
+cvt.s.w 10.000000 10
+cvt.s.w -248562.000000 -248562
+cvt.s.w -45786.000000 -45786
+cvt.s.w 456.000000 456
+cvt.s.w 34.000000 34
+cvt.s.w 45786.000000 45786
+cvt.s.w 1752065.000000 1752065
+cvt.s.w 107.000000 107
+cvt.s.w -45667.000000 -45667
+cvt.s.w -7.000000 -7
+cvt.s.w -347856.000000 -347856
+cvt.s.w -2147483648.000000 -2147483648
+cvt.s.w 268435440.000000 268435455
+cvt.s.w 23.000000 23
+roundig mode: +inf
+cvt.s.w 0.000000 0
+cvt.s.w 456.000000 456
+cvt.s.w 3.000000 3
+cvt.s.w -1.000000 -1
+cvt.s.w -1.000000 -1
+cvt.s.w 356.000000 356
+cvt.s.w 1000000000.000000 1000000000
+cvt.s.w -5786.000000 -5786
+cvt.s.w 1752.000000 1752
+cvt.s.w 24575.000000 24575
+cvt.s.w 10.000000 10
+cvt.s.w -248562.000000 -248562
+cvt.s.w -45786.000000 -45786
+cvt.s.w 456.000000 456
+cvt.s.w 34.000000 34
+cvt.s.w 45786.000000 45786
+cvt.s.w 1752065.000000 1752065
+cvt.s.w 107.000000 107
+cvt.s.w -45667.000000 -45667
+cvt.s.w -7.000000 -7
+cvt.s.w -347856.000000 -347856
+cvt.s.w -2147483648.000000 -2147483648
+cvt.s.w 268435456.000000 268435455
+cvt.s.w 23.000000 23
+roundig mode: -inf
+cvt.s.w 0.000000 0
+cvt.s.w 456.000000 456
+cvt.s.w 3.000000 3
+cvt.s.w -1.000000 -1
+cvt.s.w -1.000000 -1
+cvt.s.w 356.000000 356
+cvt.s.w 1000000000.000000 1000000000
+cvt.s.w -5786.000000 -5786
+cvt.s.w 1752.000000 1752
+cvt.s.w 24575.000000 24575
+cvt.s.w 10.000000 10
+cvt.s.w -248562.000000 -248562
+cvt.s.w -45786.000000 -45786
+cvt.s.w 456.000000 456
+cvt.s.w 34.000000 34
+cvt.s.w 45786.000000 45786
+cvt.s.w 1752065.000000 1752065
+cvt.s.w 107.000000 107
+cvt.s.w -45667.000000 -45667
+cvt.s.w -7.000000 -7
+cvt.s.w -347856.000000 -347856
+cvt.s.w -2147483648.000000 -2147483648
+cvt.s.w 268435440.000000 268435455
+cvt.s.w 23.000000 23
+roundig mode: near
+cvt.w.s 0 0.000000
+cvt.w.s 456 456.248962
+cvt.w.s 3 3.000000
+cvt.w.s -1 -1.000000
+cvt.w.s 1385 1384.599976
+cvt.w.s -7 -7.294568
+cvt.w.s 1000000000 1000000000.000000
+cvt.w.s -5786 -5786.470215
+cvt.w.s 1752 1752.000000
+cvt.w.s 0 0.002457
+cvt.w.s 0 0.000000
+cvt.w.s -248563 -248562.765625
+cvt.w.s -45786 -45786.476562
+cvt.w.s 456 456.248962
+cvt.w.s 34 34.000462
+cvt.w.s 45786 45786.476562
+cvt.w.s 1752065 1752065.000000
+cvt.w.s 107 107.000000
+cvt.w.s -45667 -45667.238281
+cvt.w.s -7 -7.294568
+cvt.w.s -347856 -347856.468750
+cvt.w.s 356048 356047.562500
+cvt.w.s -1 -1.000000
+cvt.w.s 23 23.040001
+roundig mode: zero
+cvt.w.s 0 0.000000
+cvt.w.s 456 456.248962
+cvt.w.s 3 3.000000
+cvt.w.s -1 -1.000000
+cvt.w.s 1384 1384.599976
+cvt.w.s -7 -7.294568
+cvt.w.s 1000000000 1000000000.000000
+cvt.w.s -5786 -5786.470215
+cvt.w.s 1752 1752.000000
+cvt.w.s 0 0.002457
+cvt.w.s 0 0.000000
+cvt.w.s -248562 -248562.765625
+cvt.w.s -45786 -45786.476562
+cvt.w.s 456 456.248962
+cvt.w.s 34 34.000462
+cvt.w.s 45786 45786.476562
+cvt.w.s 1752065 1752065.000000
+cvt.w.s 107 107.000000
+cvt.w.s -45667 -45667.238281
+cvt.w.s -7 -7.294568
+cvt.w.s -347856 -347856.468750
+cvt.w.s 356047 356047.562500
+cvt.w.s -1 -1.000000
+cvt.w.s 23 23.040001
+roundig mode: +inf
+cvt.w.s 0 0.000000
+cvt.w.s 457 456.248962
+cvt.w.s 3 3.000000
+cvt.w.s -1 -1.000000
+cvt.w.s 1385 1384.599976
+cvt.w.s -7 -7.294568
+cvt.w.s 1000000000 1000000000.000000
+cvt.w.s -5786 -5786.470215
+cvt.w.s 1752 1752.000000
+cvt.w.s 1 0.002457
+cvt.w.s 1 0.000000
+cvt.w.s -248562 -248562.765625
+cvt.w.s -45786 -45786.476562
+cvt.w.s 457 456.248962
+cvt.w.s 35 34.000462
+cvt.w.s 45787 45786.476562
+cvt.w.s 1752065 1752065.000000
+cvt.w.s 107 107.000000
+cvt.w.s -45667 -45667.238281
+cvt.w.s -7 -7.294568
+cvt.w.s -347856 -347856.468750
+cvt.w.s 356048 356047.562500
+cvt.w.s -1 -1.000000
+cvt.w.s 24 23.040001
+roundig mode: -inf
+cvt.w.s 0 0.000000
+cvt.w.s 456 456.248962
+cvt.w.s 3 3.000000
+cvt.w.s -1 -1.000000
+cvt.w.s 1384 1384.599976
+cvt.w.s -8 -7.294568
+cvt.w.s 1000000000 1000000000.000000
+cvt.w.s -5787 -5786.470215
+cvt.w.s 1752 1752.000000
+cvt.w.s 0 0.002457
+cvt.w.s 0 0.000000
+cvt.w.s -248563 -248562.765625
+cvt.w.s -45787 -45786.476562
+cvt.w.s 456 456.248962
+cvt.w.s 34 34.000462
+cvt.w.s 45786 45786.476562
+cvt.w.s 1752065 1752065.000000
+cvt.w.s 107 107.000000
+cvt.w.s -45668 -45667.238281
+cvt.w.s -8 -7.294568
+cvt.w.s -347857 -347856.468750
+cvt.w.s 356047 356047.562500
+cvt.w.s -1 -1.000000
+cvt.w.s 23 23.040001
+roundig mode: near
+cvt.w.d 0 0.000000
+cvt.w.d 456 456.248956
+cvt.w.d 3 3.000000
+cvt.w.d -1 -1.000000
+cvt.w.d 1385 1384.600000
+cvt.w.d -7 -7.294568
+cvt.w.d 1000000000 1000000000.000000
+cvt.w.d -5786 -5786.470000
+cvt.w.d 1752 1752.000000
+cvt.w.d 0 0.002458
+cvt.w.d 0 0.000000
+cvt.w.d -248563 -248562.760000
+cvt.w.d -45786 -45786.476000
+cvt.w.d 456 456.248956
+cvt.w.d 34 34.000460
+cvt.w.d 45786 45786.476000
+cvt.w.d 1752065 1752065.000000
+cvt.w.d 107 107.000000
+cvt.w.d -45667 -45667.240000
+cvt.w.d -7 -7.294568
+cvt.w.d -347856 -347856.475000
+cvt.w.d 356048 356047.560000
+cvt.w.d -1 -1.000000
+cvt.w.d 23 23.040000
+roundig mode: zero
+cvt.w.d 0 0.000000
+cvt.w.d 456 456.248956
+cvt.w.d 3 3.000000
+cvt.w.d -1 -1.000000
+cvt.w.d 1384 1384.600000
+cvt.w.d -7 -7.294568
+cvt.w.d 1000000000 1000000000.000000
+cvt.w.d -5786 -5786.470000
+cvt.w.d 1752 1752.000000
+cvt.w.d 0 0.002458
+cvt.w.d 0 0.000000
+cvt.w.d -248562 -248562.760000
+cvt.w.d -45786 -45786.476000
+cvt.w.d 456 456.248956
+cvt.w.d 34 34.000460
+cvt.w.d 45786 45786.476000
+cvt.w.d 1752065 1752065.000000
+cvt.w.d 107 107.000000
+cvt.w.d -45667 -45667.240000
+cvt.w.d -7 -7.294568
+cvt.w.d -347856 -347856.475000
+cvt.w.d 356047 356047.560000
+cvt.w.d -1 -1.000000
+cvt.w.d 23 23.040000
+roundig mode: +inf
+cvt.w.d 0 0.000000
+cvt.w.d 457 456.248956
+cvt.w.d 3 3.000000
+cvt.w.d -1 -1.000000
+cvt.w.d 1385 1384.600000
+cvt.w.d -7 -7.294568
+cvt.w.d 1000000000 1000000000.000000
+cvt.w.d -5786 -5786.470000
+cvt.w.d 1752 1752.000000
+cvt.w.d 1 0.002458
+cvt.w.d 1 0.000000
+cvt.w.d -248562 -248562.760000
+cvt.w.d -45786 -45786.476000
+cvt.w.d 457 456.248956
+cvt.w.d 35 34.000460
+cvt.w.d 45787 45786.476000
+cvt.w.d 1752065 1752065.000000
+cvt.w.d 107 107.000000
+cvt.w.d -45667 -45667.240000
+cvt.w.d -7 -7.294568
+cvt.w.d -347856 -347856.475000
+cvt.w.d 356048 356047.560000
+cvt.w.d -1 -1.000000
+cvt.w.d 24 23.040000
+roundig mode: -inf
+cvt.w.d 0 0.000000
+cvt.w.d 456 456.248956
+cvt.w.d 3 3.000000
+cvt.w.d -1 -1.000000
+cvt.w.d 1384 1384.600000
+cvt.w.d -8 -7.294568
+cvt.w.d 1000000000 1000000000.000000
+cvt.w.d -5787 -5786.470000
+cvt.w.d 1752 1752.000000
+cvt.w.d 0 0.002458
+cvt.w.d 0 0.000000
+cvt.w.d -248563 -248562.760000
+cvt.w.d -45787 -45786.476000
+cvt.w.d 456 456.248956
+cvt.w.d 34 34.000460
+cvt.w.d 45786 45786.476000
+cvt.w.d 1752065 1752065.000000
+cvt.w.d 107 107.000000
+cvt.w.d -45668 -45667.240000
+cvt.w.d -8 -7.294568
+cvt.w.d -347857 -347856.475000
+cvt.w.d 356047 356047.560000
+cvt.w.d -1 -1.000000
+cvt.w.d 23 23.040000
--- /dev/null
+prog: round
+vgopts: -q
--- /dev/null
+#include <stdio.h>
+
+unsigned int mem[] = {
+ 0x4095A266, 0x66666666,
+ 0xBFF00000, 0x00000000,
+ 0x3FF00000, 0x00000000,
+ 0x252a2e2b, 0x262d2d2a,
+ 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x41D26580, 0xB487E5C9,
+ 0x42026580, 0xB750E388,
+ 0x3E45798E, 0xE2308C3A,
+ 0x3FBF9ADD, 0x3746F65F
+};
+
+float fs_f[] = {
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76,
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04
+};
+
+double fs_d[] = {
+ 0, 456.2489562, 3, -1,
+ 1384.6, -7.2945676, 1000000000, -5786.47,
+ 1752, 0.0024575, 0.00000001, -248562.76,
+ -45786.476, 456.2489562, 34.00046, 45786.476,
+ 1752065, 107, -45667.24, -7.2945676,
+ -347856.475, 356047.56, -1.0, 23.04
+};
+
+double mem1[] = {
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0
+};
+
+float mem1f[] = {
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0
+};
+// ldc1 $f0, 0($t1)
+#define TESTINSN5LOAD(instruction, RTval, offset, RT) \
+{ \
+ double out; \
+ int out1; \
+ int out2; \
+ __asm__ volatile( \
+ "move $t1, %3\n\t" \
+ "li $t0, " #RTval"\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #RT "\n\t" \
+ "mfc1 %1, $" #RT "\n\t" \
+ "mfc1 %2, $f1\n\t" \
+ : "=&f" (out), "=&r" (out1), "=&r" (out2) \
+ : "r" (mem), "r" (RTval) \
+ : "cc", "memory" \
+ ); \
+ printf("%s :: ft 0x%x%x\n", \
+ instruction, out1, out2); \
+}
+
+// lwc1 $f0, 0($t1)
+#define TESTINSN5LOADw(instruction, RTval, offset, RT) \
+{ \
+ double out; \
+ int out1; \
+ __asm__ volatile( \
+ "move $t1, %2\n\t" \
+ "li $t0, " #RTval"\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #RT "\n\t" \
+ "mfc1 %1, $" #RT "\n\t" \
+ : "=&f" (out), "=&r" (out1) \
+ : "r" (mem), "r" (RTval) \
+ : "cc", "memory" \
+ ); \
+ printf("%s :: ft 0x%x\n", \
+ instruction, out1); \
+}
+
+// lwxc1 $f0, $a3($v0)
+#define TESTINSN6LOADw(instruction, indexVal, fd, index, base) \
+{ \
+ int out; \
+ __asm__ volatile( \
+ "move $" #base ", %1\n\t" \
+ "li $" #index ", " #indexVal"\n\t" \
+ instruction "\n\t" \
+ "mfc1 %0, $" #fd "\n\t" \
+ : "=&r" (out) \
+ : "r" (mem) \
+ : "cc", "memory" \
+ ); \
+ printf("%s :: ft 0x%x\n", \
+ instruction, out); \
+}
+
+// ldxc1 $f0, $a3($v0)
+#define TESTINSN6LOADd(instruction, indexVal, fd, index, base) \
+{ \
+ int out; \
+ int out1; \
+ int out2; \
+ __asm__ volatile( \
+ "move $" #base ", %3\n\t" \
+ "li $" #index ", " #indexVal"\n\t" \
+ instruction "\n\t" \
+ "mov.d %0, $" #fd "\n\t" \
+ "mfc1 %1, $" #fd "\n\t" \
+ "mfc1 %2, $f1\n\t" \
+ : "=&f" (out), "=&r" (out1), "=&r" (out2) \
+ : "r" (mem) \
+ : "cc", "memory" \
+ ); \
+ printf("%s :: ft 0x%x\n", \
+ instruction, out); \
+}
+// sdc1 $f0, 0($t0)
+#define TESTINST1(offset) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $t0, %1\n\t" \
+ "move $t1, %2\n\t" \
+ "ldc1 $f0, "#offset"($t1)\n\t" \
+ "sdc1 $f0, "#offset"($t0) \n\t" \
+ "lw %0, "#offset"($t0)\n\t" \
+ : "=&r" (out) \
+ : "r" (mem1), "r" (fs_d) \
+ : "t1", "t0", "cc", "memory" \
+ ); \
+ printf("sdc1 $f0, 0($t0) :: out: 0x%x\n", \
+ out); \
+}
+
+// sdxc1 $f0, $t2($t0)
+#define TESTINST1a(offset) \
+{ \
+ unsigned int out; \
+ unsigned int out1; \
+ __asm__ volatile( \
+ "move $t0, %2\n\t" \
+ "move $t1, %3\n\t" \
+ "li $t2, "#offset"\n\t" \
+ "ldc1 $f0, "#offset"($t1)\n\t" \
+ "sdxc1 $f0, $t2($t0) \n\t" \
+ "lw %0, "#offset"($t0)\n\t" \
+ "addi $t0, $t0, 4 \n\t" \
+ "lw %1, "#offset"($t0)\n\t" \
+ : "=&r" (out), "=&r" (out1) \
+ : "r" (mem1), "r" (fs_d) \
+ : "t2", "t1", "t0", "cc", "memory" \
+ ); \
+ printf("sdc1 $f0, #t2($t0) :: out: 0x%x : out1: 0x%x\n", \
+ out, out1); \
+}
+
+// swc1 $f0, 0($t0)
+#define TESTINST2(offset) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $t0, %1\n\t" \
+ "move $t1, %2\n\t" \
+ "lwc1 $f0, "#offset"($t1)\n\t" \
+ "swc1 $f0, "#offset"($t0) \n\t" \
+ "lw %0, "#offset"($t0)\n\t" \
+ : "=&r" (out) \
+ : "r" (mem1f), "r" (fs_f) \
+ : "t1", "t0", "cc", "memory" \
+ ); \
+ printf("swc1 $f0, 0($t0) :: out: 0x%x\n", \
+ out); \
+}
+
+// SWXC1 $f0, $t2($t0)
+#define TESTINST2a(offset) \
+{ \
+ unsigned int out; \
+ __asm__ volatile( \
+ "move $t0, %1\n\t" \
+ "move $t1, %2\n\t" \
+ "li $t2, "#offset" \n\t" \
+ "lwc1 $f0, "#offset"($t1)\n\t" \
+ "swxc1 $f0, $t2($t0) \n\t" \
+ "lw %0, "#offset"($t0)\n\t" \
+ : "=&r" (out) \
+ : "r" (mem1f), "r" (fs_f) \
+ : "t2", "t1", "t0", "cc", "memory" \
+ ); \
+ printf("swxc1 $f0, 0($t0) :: out: 0x%x\n", \
+ out); \
+}
+void ppMem(double *mem, int len)
+{
+ int i;
+ printf("MEM1:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("%lf, %lf, %lf, %lf\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ mem[i] = 0;
+ mem[i+1] = 0;
+ mem[i+2] = 0;
+ mem[i+3] = 0;
+ }
+}
+
+void ppMemF(float *mem, int len)
+{
+ int i;
+ printf("MEM1:\n");
+ for (i = 0; i < len; i=i+4)
+ {
+ printf("%lf, %lf, %lf, %lf\n", mem[i], mem[i+1], mem[i+2], mem[i+3]);
+ mem[i] = 0;
+ mem[i+1] = 0;
+ mem[i+2] = 0;
+ mem[i+3] = 0;
+ }
+}
+
+int main()
+{
+ printf("LDC1\n");
+ TESTINSN5LOAD("ldc1 $f0, 0($t1)", 0, 0, f0);
+ TESTINSN5LOAD("ldc1 $f0, 8($t1)", 0, 8, f0);
+ TESTINSN5LOAD("ldc1 $f0, 16($t1)", 0, 16, f0);
+ TESTINSN5LOAD("ldc1 $f0, 24($t1)", 0, 24, f0);
+ TESTINSN5LOAD("ldc1 $f0, 32($t1)", 0, 32, f0);
+ TESTINSN5LOAD("ldc1 $f0, 40($t1)", 0, 40, f0);
+ TESTINSN5LOAD("ldc1 $f0, 48($t1)", 0, 48, f0);
+ TESTINSN5LOAD("ldc1 $f0, 56($t1)", 0, 56, f0);
+ TESTINSN5LOAD("ldc1 $f0, 64($t1)", 0, 64, f0);
+ TESTINSN5LOAD("ldc1 $f0, 0($t1)", 0, 0, f0);
+ TESTINSN5LOAD("ldc1 $f0, 8($t1)", 0, 8, f0);
+ TESTINSN5LOAD("ldc1 $f0, 16($t1)", 0, 16, f0);
+ TESTINSN5LOAD("ldc1 $f0, 24($t1)", 0, 24, f0);
+ TESTINSN5LOAD("ldc1 $f0, 32($t1)", 0, 32, f0);
+ TESTINSN5LOAD("ldc1 $f0, 40($t1)", 0, 40, f0);
+ TESTINSN5LOAD("ldc1 $f0, 48($t1)", 0, 48, f0);
+ TESTINSN5LOAD("ldc1 $f0, 56($t1)", 0, 56, f0);
+ TESTINSN5LOAD("ldc1 $f0, 0($t1)", 0, 0, f0);
+ TESTINSN5LOAD("ldc1 $f0, 8($t1)", 0, 8, f0);
+ TESTINSN5LOAD("ldc1 $f0, 16($t1)", 0, 16, f0);
+ TESTINSN5LOAD("ldc1 $f0, 24($t1)", 0, 24, f0);
+ TESTINSN5LOAD("ldc1 $f0, 32($t1)", 0, 32, f0);
+ TESTINSN5LOAD("ldc1 $f0, 40($t1)", 0, 40, f0);
+ TESTINSN5LOAD("ldc1 $f0, 48($t1)", 0, 48, f0);
+ TESTINSN5LOAD("ldc1 $f0, 56($t1)", 0, 56, f0);
+ TESTINSN5LOAD("ldc1 $f0, 64($t1)", 0, 64, f0);
+ TESTINSN5LOAD("ldc1 $f0, 0($t1)", 0, 0, f0);
+
+ printf("LWC1\n");
+ TESTINSN5LOADw("lwc1 $f0, 0($t1)", 0, 0, f0);
+ TESTINSN5LOADw("lwc1 $f0, 4($t1)", 0, 4, f0);
+ TESTINSN5LOADw("lwc1 $f0, 8($t1)", 0, 8, f0);
+ TESTINSN5LOADw("lwc1 $f0, 12($t1)", 0, 12, f0);
+ TESTINSN5LOADw("lwc1 $f0, 16($t1)", 0, 16, f0);
+ TESTINSN5LOADw("lwc1 $f0, 20($t1)", 0, 20, f0);
+ TESTINSN5LOADw("lwc1 $f0, 24($t1)", 0, 24, f0);
+ TESTINSN5LOADw("lwc1 $f0, 28($t1)", 0, 28, f0);
+ TESTINSN5LOADw("lwc1 $f0, 32($t1)", 0, 32, f0);
+ TESTINSN5LOADw("lwc1 $f0, 36($t1)", 0, 36, f0);
+ TESTINSN5LOADw("lwc1 $f0, 40($t1)", 0, 40, f0);
+ TESTINSN5LOADw("lwc1 $f0, 44($t1)", 0, 44, f0);
+ TESTINSN5LOADw("lwc1 $f0, 48($t1)", 0, 48, f0);
+ TESTINSN5LOADw("lwc1 $f0, 52($t1)", 0, 52, f0);
+ TESTINSN5LOADw("lwc1 $f0, 56($t1)", 0, 56, f0);
+ TESTINSN5LOADw("lwc1 $f0, 60($t1)", 0, 60, f0);
+ TESTINSN5LOADw("lwc1 $f0, 64($t1)", 0, 64, f0);
+ TESTINSN5LOADw("lwc1 $f0, 0($t1)", 0, 0, f0);
+ TESTINSN5LOADw("lwc1 $f0, 8($t1)", 0, 8, f0);
+ TESTINSN5LOADw("lwc1 $f0, 16($t1)", 0, 16, f0);
+ TESTINSN5LOADw("lwc1 $f0, 24($t1)", 0, 24, f0);
+ TESTINSN5LOADw("lwc1 $f0, 32($t1)", 0, 32, f0);
+ TESTINSN5LOADw("lwc1 $f0, 40($t1)", 0, 40, f0);
+ TESTINSN5LOADw("lwc1 $f0, 48($t1)", 0, 48, f0);
+ TESTINSN5LOADw("lwc1 $f0, 56($t1)", 0, 56, f0);
+ TESTINSN5LOADw("lwc1 $f0, 64($t1)", 0, 64, f0);
+ TESTINSN5LOADw("lwc1 $f0, 0($t1)", 0, 0, f0);
+
+ printf("LWXC1\n");
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 0, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 4, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 8, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 12, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 16, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 20, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 24, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 28, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 32, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 36, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 40, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 44, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 48, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 52, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 56, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 60, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 64, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 0, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 4, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 8, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 12, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 16, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 20, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 24, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 28, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 32, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 36, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 40, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 44, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 48, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 52, f0, a3, v0);
+ TESTINSN6LOADw("lwxc1 $f0, $a3($v0)", 56, f0, a3, v0);
+
+ printf("LDXC1\n");
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 0, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 8, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 16, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 24, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 32, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 40, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 48, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 56, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 64, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 0, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 8, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 16, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 24, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 32, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 40, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 48, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 56, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 64, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 0, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 8, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 16, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 24, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 32, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 40, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 48, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 56, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 64, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 0, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 8, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 16, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 24, f0, a3, v0);
+ TESTINSN6LOADd("ldxc1 $f0, $a3($v0)", 32, f0, a3, v0);
+
+ printf("SDC1\n");
+ TESTINST1(0);
+ TESTINST1(8);
+ TESTINST1(16);
+ TESTINST1(24);
+ TESTINST1(32);
+ TESTINST1(40);
+ TESTINST1(48);
+ TESTINST1(56);
+ TESTINST1(64);
+ ppMem(mem1, 16);
+
+ printf("SDXC1\n");
+ TESTINST1a(0);
+ TESTINST1a(8);
+ TESTINST1a(16);
+ TESTINST1a(24);
+ TESTINST1a(32);
+ TESTINST1a(40);
+ TESTINST1a(48);
+ TESTINST1a(56);
+ TESTINST1a(64);
+ ppMem(mem1, 16);
+
+ printf("SWC1\n");
+ TESTINST2(0);
+ TESTINST2(8);
+ TESTINST2(16);
+ TESTINST2(24);
+ TESTINST2(32);
+ TESTINST2(40);
+ TESTINST2(48);
+ TESTINST2(56);
+ TESTINST2(64);
+ ppMemF(mem1f, 16);
+
+ printf("SWXC1\n");
+ TESTINST2a(0);
+ TESTINST2a(8);
+ TESTINST2a(16);
+ TESTINST2a(24);
+ TESTINST2a(32);
+ TESTINST2a(40);
+ TESTINST2a(48);
+ TESTINST2a(56);
+ TESTINST2a(64);
+ ppMemF(mem1f, 16);
+
+ return 0;
+}
--- /dev/null
+LDC1
+ldc1 $f0, 0($t1) :: ft 0x4095a26666666666
+ldc1 $f0, 8($t1) :: ft 0xbff000000
+ldc1 $f0, 16($t1) :: ft 0x3ff000000
+ldc1 $f0, 24($t1) :: ft 0x252a2e2b262d2d2a
+ldc1 $f0, 32($t1) :: ft 0xffffffffffffffff
+ldc1 $f0, 40($t1) :: ft 0x41d26580b487e5c9
+ldc1 $f0, 48($t1) :: ft 0x42026580b750e388
+ldc1 $f0, 56($t1) :: ft 0x3e45798ee2308c3a
+ldc1 $f0, 64($t1) :: ft 0x3fbf9add3746f65f
+ldc1 $f0, 0($t1) :: ft 0x4095a26666666666
+ldc1 $f0, 8($t1) :: ft 0xbff000000
+ldc1 $f0, 16($t1) :: ft 0x3ff000000
+ldc1 $f0, 24($t1) :: ft 0x252a2e2b262d2d2a
+ldc1 $f0, 32($t1) :: ft 0xffffffffffffffff
+ldc1 $f0, 40($t1) :: ft 0x41d26580b487e5c9
+ldc1 $f0, 48($t1) :: ft 0x42026580b750e388
+ldc1 $f0, 56($t1) :: ft 0x3e45798ee2308c3a
+ldc1 $f0, 0($t1) :: ft 0x4095a26666666666
+ldc1 $f0, 8($t1) :: ft 0xbff000000
+ldc1 $f0, 16($t1) :: ft 0x3ff000000
+ldc1 $f0, 24($t1) :: ft 0x252a2e2b262d2d2a
+ldc1 $f0, 32($t1) :: ft 0xffffffffffffffff
+ldc1 $f0, 40($t1) :: ft 0x41d26580b487e5c9
+ldc1 $f0, 48($t1) :: ft 0x42026580b750e388
+ldc1 $f0, 56($t1) :: ft 0x3e45798ee2308c3a
+ldc1 $f0, 64($t1) :: ft 0x3fbf9add3746f65f
+ldc1 $f0, 0($t1) :: ft 0x4095a26666666666
+LWC1
+lwc1 $f0, 0($t1) :: ft 0x4095a266
+lwc1 $f0, 4($t1) :: ft 0x66666666
+lwc1 $f0, 8($t1) :: ft 0xbff00000
+lwc1 $f0, 12($t1) :: ft 0x0
+lwc1 $f0, 16($t1) :: ft 0x3ff00000
+lwc1 $f0, 20($t1) :: ft 0x0
+lwc1 $f0, 24($t1) :: ft 0x252a2e2b
+lwc1 $f0, 28($t1) :: ft 0x262d2d2a
+lwc1 $f0, 32($t1) :: ft 0xffffffff
+lwc1 $f0, 36($t1) :: ft 0xffffffff
+lwc1 $f0, 40($t1) :: ft 0x41d26580
+lwc1 $f0, 44($t1) :: ft 0xb487e5c9
+lwc1 $f0, 48($t1) :: ft 0x42026580
+lwc1 $f0, 52($t1) :: ft 0xb750e388
+lwc1 $f0, 56($t1) :: ft 0x3e45798e
+lwc1 $f0, 60($t1) :: ft 0xe2308c3a
+lwc1 $f0, 64($t1) :: ft 0x3fbf9add
+lwc1 $f0, 0($t1) :: ft 0x4095a266
+lwc1 $f0, 8($t1) :: ft 0xbff00000
+lwc1 $f0, 16($t1) :: ft 0x3ff00000
+lwc1 $f0, 24($t1) :: ft 0x252a2e2b
+lwc1 $f0, 32($t1) :: ft 0xffffffff
+lwc1 $f0, 40($t1) :: ft 0x41d26580
+lwc1 $f0, 48($t1) :: ft 0x42026580
+lwc1 $f0, 56($t1) :: ft 0x3e45798e
+lwc1 $f0, 64($t1) :: ft 0x3fbf9add
+lwc1 $f0, 0($t1) :: ft 0x4095a266
+LWXC1
+lwxc1 $f0, $a3($v0) :: ft 0x4095a266
+lwxc1 $f0, $a3($v0) :: ft 0x66666666
+lwxc1 $f0, $a3($v0) :: ft 0xbff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x3ff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+lwxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0x41d26580
+lwxc1 $f0, $a3($v0) :: ft 0xb487e5c9
+lwxc1 $f0, $a3($v0) :: ft 0x42026580
+lwxc1 $f0, $a3($v0) :: ft 0xb750e388
+lwxc1 $f0, $a3($v0) :: ft 0x3e45798e
+lwxc1 $f0, $a3($v0) :: ft 0xe2308c3a
+lwxc1 $f0, $a3($v0) :: ft 0x3fbf9add
+lwxc1 $f0, $a3($v0) :: ft 0x4095a266
+lwxc1 $f0, $a3($v0) :: ft 0x66666666
+lwxc1 $f0, $a3($v0) :: ft 0xbff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x3ff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+lwxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0x41d26580
+lwxc1 $f0, $a3($v0) :: ft 0xb487e5c9
+lwxc1 $f0, $a3($v0) :: ft 0x42026580
+lwxc1 $f0, $a3($v0) :: ft 0xb750e388
+lwxc1 $f0, $a3($v0) :: ft 0x3e45798e
+LDXC1
+ldxc1 $f0, $a3($v0) :: ft 0x4095a266
+ldxc1 $f0, $a3($v0) :: ft 0xbff00000
+ldxc1 $f0, $a3($v0) :: ft 0x3ff00000
+ldxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+ldxc1 $f0, $a3($v0) :: ft 0x41d26580
+ldxc1 $f0, $a3($v0) :: ft 0x42026580
+ldxc1 $f0, $a3($v0) :: ft 0x3e45798e
+ldxc1 $f0, $a3($v0) :: ft 0x3fbf9add
+ldxc1 $f0, $a3($v0) :: ft 0x4095a266
+ldxc1 $f0, $a3($v0) :: ft 0xbff00000
+ldxc1 $f0, $a3($v0) :: ft 0x3ff00000
+ldxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+ldxc1 $f0, $a3($v0) :: ft 0x41d26580
+ldxc1 $f0, $a3($v0) :: ft 0x42026580
+ldxc1 $f0, $a3($v0) :: ft 0x3e45798e
+ldxc1 $f0, $a3($v0) :: ft 0x3fbf9add
+ldxc1 $f0, $a3($v0) :: ft 0x4095a266
+ldxc1 $f0, $a3($v0) :: ft 0xbff00000
+ldxc1 $f0, $a3($v0) :: ft 0x3ff00000
+ldxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+ldxc1 $f0, $a3($v0) :: ft 0x41d26580
+ldxc1 $f0, $a3($v0) :: ft 0x42026580
+ldxc1 $f0, $a3($v0) :: ft 0x3e45798e
+ldxc1 $f0, $a3($v0) :: ft 0x3fbf9add
+ldxc1 $f0, $a3($v0) :: ft 0x4095a266
+ldxc1 $f0, $a3($v0) :: ft 0xbff00000
+ldxc1 $f0, $a3($v0) :: ft 0x3ff00000
+ldxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+SDC1
+sdc1 $f0, 0($t0) :: out: 0x0
+sdc1 $f0, 0($t0) :: out: 0xb97f122f
+sdc1 $f0, 0($t0) :: out: 0x0
+sdc1 $f0, 0($t0) :: out: 0x0
+sdc1 $f0, 0($t0) :: out: 0x66666666
+sdc1 $f0, 0($t0) :: out: 0x2101d847
+sdc1 $f0, 0($t0) :: out: 0x0
+sdc1 $f0, 0($t0) :: out: 0x51eb851f
+sdc1 $f0, 0($t0) :: out: 0x0
+MEM1:
+0.000000, 456.248956, 3.000000, -1.000000
+1384.600000, -7.294568, 1000000000.000000, -5786.470000
+1752.000000, 0.000000, 0.000000, 0.000000
+0.000000, 0.000000, 0.000000, 0.000000
+SDXC1
+sdc1 $f0, #t2($t0) :: out: 0x0 : out1: 0x0
+sdc1 $f0, #t2($t0) :: out: 0xb97f122f : out1: 0x407c83fb
+sdc1 $f0, #t2($t0) :: out: 0x0 : out1: 0x40080000
+sdc1 $f0, #t2($t0) :: out: 0x0 : out1: 0xbff00000
+sdc1 $f0, #t2($t0) :: out: 0x66666666 : out1: 0x4095a266
+sdc1 $f0, #t2($t0) :: out: 0x2101d847 : out1: 0xc01d2da3
+sdc1 $f0, #t2($t0) :: out: 0x0 : out1: 0x41cdcd65
+sdc1 $f0, #t2($t0) :: out: 0x51eb851f : out1: 0xc0b69a78
+sdc1 $f0, #t2($t0) :: out: 0x0 : out1: 0x409b6000
+MEM1:
+0.000000, 456.248956, 3.000000, -1.000000
+1384.600000, -7.294568, 1000000000.000000, -5786.470000
+1752.000000, 0.000000, 0.000000, 0.000000
+0.000000, 0.000000, 0.000000, 0.000000
+SWC1
+swc1 $f0, 0($t0) :: out: 0x0
+swc1 $f0, 0($t0) :: out: 0x40400000
+swc1 $f0, 0($t0) :: out: 0x44ad1333
+swc1 $f0, 0($t0) :: out: 0x4e6e6b28
+swc1 $f0, 0($t0) :: out: 0x44db0000
+swc1 $f0, 0($t0) :: out: 0x322bcc77
+swc1 $f0, 0($t0) :: out: 0xc732da7a
+swc1 $f0, 0($t0) :: out: 0x42080079
+swc1 $f0, 0($t0) :: out: 0x49d5e008
+MEM1:
+0.000000, 0.000000, 3.000000, 0.000000
+1384.599976, 0.000000, 1000000000.000000, 0.000000
+1752.000000, 0.000000, 0.000000, 0.000000
+-45786.476562, 0.000000, 34.000462, 0.000000
+SWXC1
+swxc1 $f0, 0($t0) :: out: 0x0
+swxc1 $f0, 0($t0) :: out: 0x40400000
+swxc1 $f0, 0($t0) :: out: 0x44ad1333
+swxc1 $f0, 0($t0) :: out: 0x4e6e6b28
+swxc1 $f0, 0($t0) :: out: 0x44db0000
+swxc1 $f0, 0($t0) :: out: 0x322bcc77
+swxc1 $f0, 0($t0) :: out: 0xc732da7a
+swxc1 $f0, 0($t0) :: out: 0x42080079
+swxc1 $f0, 0($t0) :: out: 0x49d5e008
+MEM1:
+0.000000, 0.000000, 3.000000, 0.000000
+1384.599976, 0.000000, 1000000000.000000, 0.000000
+1752.000000, 0.000000, 0.000000, 0.000000
+-45786.476562, 0.000000, 34.000462, 0.000000
--- /dev/null
+LDC1
+ldc1 $f0, 0($t1) :: ft 0x666666664095a266
+ldc1 $f0, 8($t1) :: ft 0x0bff00000
+ldc1 $f0, 16($t1) :: ft 0x03ff00000
+ldc1 $f0, 24($t1) :: ft 0x262d2d2a252a2e2b
+ldc1 $f0, 32($t1) :: ft 0xffffffffffffffff
+ldc1 $f0, 40($t1) :: ft 0xb487e5c941d26580
+ldc1 $f0, 48($t1) :: ft 0xb750e38842026580
+ldc1 $f0, 56($t1) :: ft 0xe2308c3a3e45798e
+ldc1 $f0, 64($t1) :: ft 0x3746f65f3fbf9add
+ldc1 $f0, 0($t1) :: ft 0x666666664095a266
+ldc1 $f0, 8($t1) :: ft 0x0bff00000
+ldc1 $f0, 16($t1) :: ft 0x03ff00000
+ldc1 $f0, 24($t1) :: ft 0x262d2d2a252a2e2b
+ldc1 $f0, 32($t1) :: ft 0xffffffffffffffff
+ldc1 $f0, 40($t1) :: ft 0xb487e5c941d26580
+ldc1 $f0, 48($t1) :: ft 0xb750e38842026580
+ldc1 $f0, 56($t1) :: ft 0xe2308c3a3e45798e
+ldc1 $f0, 0($t1) :: ft 0x666666664095a266
+ldc1 $f0, 8($t1) :: ft 0x0bff00000
+ldc1 $f0, 16($t1) :: ft 0x03ff00000
+ldc1 $f0, 24($t1) :: ft 0x262d2d2a252a2e2b
+ldc1 $f0, 32($t1) :: ft 0xffffffffffffffff
+ldc1 $f0, 40($t1) :: ft 0xb487e5c941d26580
+ldc1 $f0, 48($t1) :: ft 0xb750e38842026580
+ldc1 $f0, 56($t1) :: ft 0xe2308c3a3e45798e
+ldc1 $f0, 64($t1) :: ft 0x3746f65f3fbf9add
+ldc1 $f0, 0($t1) :: ft 0x666666664095a266
+LWC1
+lwc1 $f0, 0($t1) :: ft 0x4095a266
+lwc1 $f0, 4($t1) :: ft 0x66666666
+lwc1 $f0, 8($t1) :: ft 0xbff00000
+lwc1 $f0, 12($t1) :: ft 0x0
+lwc1 $f0, 16($t1) :: ft 0x3ff00000
+lwc1 $f0, 20($t1) :: ft 0x0
+lwc1 $f0, 24($t1) :: ft 0x252a2e2b
+lwc1 $f0, 28($t1) :: ft 0x262d2d2a
+lwc1 $f0, 32($t1) :: ft 0xffffffff
+lwc1 $f0, 36($t1) :: ft 0xffffffff
+lwc1 $f0, 40($t1) :: ft 0x41d26580
+lwc1 $f0, 44($t1) :: ft 0xb487e5c9
+lwc1 $f0, 48($t1) :: ft 0x42026580
+lwc1 $f0, 52($t1) :: ft 0xb750e388
+lwc1 $f0, 56($t1) :: ft 0x3e45798e
+lwc1 $f0, 60($t1) :: ft 0xe2308c3a
+lwc1 $f0, 64($t1) :: ft 0x3fbf9add
+lwc1 $f0, 0($t1) :: ft 0x4095a266
+lwc1 $f0, 8($t1) :: ft 0xbff00000
+lwc1 $f0, 16($t1) :: ft 0x3ff00000
+lwc1 $f0, 24($t1) :: ft 0x252a2e2b
+lwc1 $f0, 32($t1) :: ft 0xffffffff
+lwc1 $f0, 40($t1) :: ft 0x41d26580
+lwc1 $f0, 48($t1) :: ft 0x42026580
+lwc1 $f0, 56($t1) :: ft 0x3e45798e
+lwc1 $f0, 64($t1) :: ft 0x3fbf9add
+lwc1 $f0, 0($t1) :: ft 0x4095a266
+LWXC1
+lwxc1 $f0, $a3($v0) :: ft 0x4095a266
+lwxc1 $f0, $a3($v0) :: ft 0x66666666
+lwxc1 $f0, $a3($v0) :: ft 0xbff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x3ff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+lwxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0x41d26580
+lwxc1 $f0, $a3($v0) :: ft 0xb487e5c9
+lwxc1 $f0, $a3($v0) :: ft 0x42026580
+lwxc1 $f0, $a3($v0) :: ft 0xb750e388
+lwxc1 $f0, $a3($v0) :: ft 0x3e45798e
+lwxc1 $f0, $a3($v0) :: ft 0xe2308c3a
+lwxc1 $f0, $a3($v0) :: ft 0x3fbf9add
+lwxc1 $f0, $a3($v0) :: ft 0x4095a266
+lwxc1 $f0, $a3($v0) :: ft 0x66666666
+lwxc1 $f0, $a3($v0) :: ft 0xbff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x3ff00000
+lwxc1 $f0, $a3($v0) :: ft 0x0
+lwxc1 $f0, $a3($v0) :: ft 0x252a2e2b
+lwxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0xffffffff
+lwxc1 $f0, $a3($v0) :: ft 0x41d26580
+lwxc1 $f0, $a3($v0) :: ft 0xb487e5c9
+lwxc1 $f0, $a3($v0) :: ft 0x42026580
+lwxc1 $f0, $a3($v0) :: ft 0xb750e388
+lwxc1 $f0, $a3($v0) :: ft 0x3e45798e
+LDXC1
+ldxc1 $f0, $a3($v0) :: ft 0x66666666
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+ldxc1 $f0, $a3($v0) :: ft 0xb487e5c9
+ldxc1 $f0, $a3($v0) :: ft 0xb750e388
+ldxc1 $f0, $a3($v0) :: ft 0xe2308c3a
+ldxc1 $f0, $a3($v0) :: ft 0x3746f65f
+ldxc1 $f0, $a3($v0) :: ft 0x66666666
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+ldxc1 $f0, $a3($v0) :: ft 0xb487e5c9
+ldxc1 $f0, $a3($v0) :: ft 0xb750e388
+ldxc1 $f0, $a3($v0) :: ft 0xe2308c3a
+ldxc1 $f0, $a3($v0) :: ft 0x3746f65f
+ldxc1 $f0, $a3($v0) :: ft 0x66666666
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+ldxc1 $f0, $a3($v0) :: ft 0xb487e5c9
+ldxc1 $f0, $a3($v0) :: ft 0xb750e388
+ldxc1 $f0, $a3($v0) :: ft 0xe2308c3a
+ldxc1 $f0, $a3($v0) :: ft 0x3746f65f
+ldxc1 $f0, $a3($v0) :: ft 0x66666666
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x0
+ldxc1 $f0, $a3($v0) :: ft 0x262d2d2a
+ldxc1 $f0, $a3($v0) :: ft 0xffffffff
+SDC1
+sdc1 $f0, 0($t0) :: out: 0x0
+sdc1 $f0, 0($t0) :: out: 0x407c83fb
+sdc1 $f0, 0($t0) :: out: 0x40080000
+sdc1 $f0, 0($t0) :: out: 0xbff00000
+sdc1 $f0, 0($t0) :: out: 0x4095a266
+sdc1 $f0, 0($t0) :: out: 0xc01d2da3
+sdc1 $f0, 0($t0) :: out: 0x41cdcd65
+sdc1 $f0, 0($t0) :: out: 0xc0b69a78
+sdc1 $f0, 0($t0) :: out: 0x409b6000
+MEM1:
+0.000000, 456.248956, 3.000000, -1.000000
+1384.600000, -7.294568, 1000000000.000000, -5786.470000
+1752.000000, 0.000000, 0.000000, 0.000000
+0.000000, 0.000000, 0.000000, 0.000000
+SDXC1
+sdc1 $f0, #t2($t0) :: out: 0x0 : out1: 0x0
+sdc1 $f0, #t2($t0) :: out: 0x407c83fb : out1: 0xb97f122f
+sdc1 $f0, #t2($t0) :: out: 0x40080000 : out1: 0x0
+sdc1 $f0, #t2($t0) :: out: 0xbff00000 : out1: 0x0
+sdc1 $f0, #t2($t0) :: out: 0x4095a266 : out1: 0x66666666
+sdc1 $f0, #t2($t0) :: out: 0xc01d2da3 : out1: 0x2101d847
+sdc1 $f0, #t2($t0) :: out: 0x41cdcd65 : out1: 0x0
+sdc1 $f0, #t2($t0) :: out: 0xc0b69a78 : out1: 0x51eb851f
+sdc1 $f0, #t2($t0) :: out: 0x409b6000 : out1: 0x0
+MEM1:
+0.000000, 456.248956, 3.000000, -1.000000
+1384.600000, -7.294568, 1000000000.000000, -5786.470000
+1752.000000, 0.000000, 0.000000, 0.000000
+0.000000, 0.000000, 0.000000, 0.000000
+SWC1
+swc1 $f0, 0($t0) :: out: 0x0
+swc1 $f0, 0($t0) :: out: 0x40400000
+swc1 $f0, 0($t0) :: out: 0x44ad1333
+swc1 $f0, 0($t0) :: out: 0x4e6e6b28
+swc1 $f0, 0($t0) :: out: 0x44db0000
+swc1 $f0, 0($t0) :: out: 0x322bcc77
+swc1 $f0, 0($t0) :: out: 0xc732da7a
+swc1 $f0, 0($t0) :: out: 0x42080079
+swc1 $f0, 0($t0) :: out: 0x49d5e008
+MEM1:
+0.000000, 0.000000, 3.000000, 0.000000
+1384.599976, 0.000000, 1000000000.000000, 0.000000
+1752.000000, 0.000000, 0.000000, 0.000000
+-45786.476562, 0.000000, 34.000462, 0.000000
+SWXC1
+swxc1 $f0, 0($t0) :: out: 0x0
+swxc1 $f0, 0($t0) :: out: 0x40400000
+swxc1 $f0, 0($t0) :: out: 0x44ad1333
+swxc1 $f0, 0($t0) :: out: 0x4e6e6b28
+swxc1 $f0, 0($t0) :: out: 0x44db0000
+swxc1 $f0, 0($t0) :: out: 0x322bcc77
+swxc1 $f0, 0($t0) :: out: 0xc732da7a
+swxc1 $f0, 0($t0) :: out: 0x42080079
+swxc1 $f0, 0($t0) :: out: 0x49d5e008
+MEM1:
+0.000000, 0.000000, 3.000000, 0.000000
+1384.599976, 0.000000, 1000000000.000000, 0.000000
+1752.000000, 0.000000, 0.000000, 0.000000
+-45786.476562, 0.000000, 34.000462, 0.000000
--- /dev/null
+prog: vfp
+vgopts: -q