mips32/mips64: tests for FCSR.

Change the existing tests to print the value of the FCSR
register after the mips fpu instruction is executed.
Add tests that are testing the value of FCSR register.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13560 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/none/tests/mips32/Makefile.am b/none/tests/mips32/Makefile.am
index ebf53c7..bf72c85 100644
--- a/none/tests/mips32/Makefile.am
+++ b/none/tests/mips32/Makefile.am
@@ -30,7 +30,8 @@
 	mips32_dspr2.stdout.exp mips32_dspr2.stderr.exp \
 	mips32_dspr2.stdout.exp-mips32 mips32_dspr2.vgtest \
 	unaligned_load_store.stdout.exp-LE unaligned_load_store.stdout.exp-BE \
-	unaligned_load_store.stderr.exp unaligned_load_store.vgtest
+	unaligned_load_store.stderr.exp unaligned_load_store.vgtest \
+	test_fcsr.stdout.exp test_fcsr.stderr.exp test_fcsr.vgtest
 
 check_PROGRAMS = \
 	allexec \
@@ -48,7 +49,8 @@
 	bug320057-mips32 \
 	mips32_dsp \
 	mips32_dspr2 \
-	unaligned_load_store
+	unaligned_load_store \
+	test_fcsr
 
 AM_CFLAGS    += @FLAG_M32@
 AM_CXXFLAGS  += @FLAG_M32@
diff --git a/none/tests/mips32/round.c b/none/tests/mips32/round.c
index 270ea6d..a50b986 100644
--- a/none/tests/mips32/round.c
+++ b/none/tests/mips32/round.c
@@ -58,137 +58,154 @@
    -347856, 0x80000000, 0xFFFFFFF, 23,
 };
 
-#define BINOP(op) \
-        __asm__ volatile( \
-					op" %0, %1, %2\n\t" \
-					: "=f"(fd) : "f"(f) , "f"(fB));
+#define BINOP(op)                                   \
+        __asm__ volatile(op"   %1, %2, %3"  "\n\t"  \
+                         "cfc1 %0, $31"     "\n\t"  \
+                         : "=r" (fcsr), "=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 UNOPdd(op)                                  \
+        fd_d = 0;                                   \
+        __asm__ volatile(op"   %1, %2"      "\n\t"  \
+                         "cfc1 %0, $31"     "\n\t"  \
+                         : "=r" (fcsr), "=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 UNOPff(op)                                  \
+        fd_f = 0;                                   \
+        __asm__ volatile(op" %1, %2"        "\n\t"  \
+                         "cfc1 %0, $31"     "\n\t"  \
+                         : "=r" (fcsr), "=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 UNOPfd(op)                                  \
+        fd_d = 0;                                   \
+        __asm__ volatile(op"   %1, %2"   "\n\t"     \
+                         "cfc1 %0, $31"  "\n\t"     \
+                         : "=r" (fcsr), "=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 UNOPdf(op)                                  \
+        fd_f = 0;                                   \
+        __asm__ volatile(op"   %1, %2"   "\n\t"     \
+                         "cfc1 %0, $31"  "\n\t"     \
+                         : "=r" (fcsr), "=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 UNOPfw(op)                                  \
+        fd_w = 0;                                   \
+        __asm__ volatile(op"   $f0, %2"   "\n\t"    \
+                         "mfc1 %1,  $f0"  "\n\t"    \
+                         "cfc1 %0, $31"   "\n\t"    \
+                         : "=r" (fcsr), "=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 UNOPdw(op)                                  \
+        fd_w = 0;                                   \
+        __asm__ volatile(op" $f0, %2"    "\n\t"     \
+                         "mfc1 %1, $f0"  "\n\t"     \
+                         "cfc1 %0, $31"  "\n\t"     \
+                         : "=r" (fcsr), "=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 UNOPwd(op)                                  \
+        fd_d = 0;                                   \
+        __asm__ volatile("mtc1 %2, $f0"  "\n\t"     \
+                         op"   %1, $f0"  "\n\t"     \
+                         "cfc1 %0, $31"  "\n\t"     \
+                         : "=r" (fcsr), "=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");
+#define UNOPwf(op)                                  \
+        fd_f = 0;                                   \
+        __asm__ volatile("mtc1 %2, $f0"  "\n\t"     \
+                         op"   %1, $f0"  "\n\t"     \
+                         "cfc1 %0, $31"  "\n\t"     \
+                         : "=r" (fcsr), "=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;
-	}
+   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) {
    int fd_w = 0;
    int i;
+   int fcsr = 0;
    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]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case CEILWD:
               UNOPdw("ceil.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case FLOORWS:
               UNOPfw("floor.w.s");
               printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case FLOORWD:
               UNOPdw("floor.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case ROUNDWS:
               UNOPfw("round.w.s");
               printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case ROUNDWD:
               UNOPdw("round.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case TRUNCWS:
               UNOPfw("trunc.w.s");
               printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case TRUNCWD:
               UNOPdw("trunc.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
         default:
             printf("error\n");
@@ -204,38 +221,43 @@
    float fd_f = 0;
    int fd_w = 0;
    int i;
+   int fcsr = 0;
    round_mode_t rm;
-   for (rm = TO_NEAREST; rm <= TO_MINUS_INFINITY; 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++)
-      {
+      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]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTDW:
                  UNOPwd("cvt.d.w");
                  printf("%s %lf %d\n", flt_round_op_names[op1], fd_d, fs_w[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTSD:
                  UNOPdf("cvt.s.d");
                  printf("%s %f %lf\n", flt_round_op_names[op1], fd_f, fs_d[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTSW:
                  UNOPwf("cvt.s.w");
                  printf("%s %f %d\n", flt_round_op_names[op1], fd_f, fs_w[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTWS:
                  UNOPfw("cvt.w.s");
                  printf("%s %d %f\n", flt_round_op_names[op1], fd_w, fs_f[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTWD:
                  UNOPdw("cvt.w.d");
                  printf("%s %d %lf\n", flt_round_op_names[op1], fd_w, fs_d[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             default:
                  printf("error\n");
diff --git a/none/tests/mips32/round.stdout.exp b/none/tests/mips32/round.stdout.exp
index 0a3d655..cbe20d7 100644
--- a/none/tests/mips32/round.stdout.exp
+++ b/none/tests/mips32/round.stdout.exp
@@ -1,794 +1,1562 @@
 -------------------------- test FPU Conversion Operations Using a Directed Rounding Mode --------------------------
 ceil.w.s 0 0.000000
+fcsr: 0x0
 ceil.w.s 457 456.248962
+fcsr: 0x1004
 ceil.w.s 3 3.000000
+fcsr: 0x4
 ceil.w.s -1 -1.000000
+fcsr: 0x4
 ceil.w.s 1385 1384.599976
+fcsr: 0x1004
 ceil.w.s -7 -7.294568
+fcsr: 0x1004
 ceil.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 ceil.w.s -5786 -5786.470215
+fcsr: 0x1004
 ceil.w.s 1752 1752.000000
+fcsr: 0x4
 ceil.w.s 1 0.002457
+fcsr: 0x1004
 ceil.w.s 1 0.000000
+fcsr: 0x1004
 ceil.w.s -248562 -248562.765625
+fcsr: 0x1004
 ceil.w.s -45786 -45786.476562
+fcsr: 0x1004
 ceil.w.s 457 456.248962
+fcsr: 0x1004
 ceil.w.s 35 34.000462
+fcsr: 0x1004
 ceil.w.s 45787 45786.476562
+fcsr: 0x1004
 ceil.w.s 1752065 1752065.000000
+fcsr: 0x4
 ceil.w.s 107 107.000000
+fcsr: 0x4
 ceil.w.s -45667 -45667.238281
+fcsr: 0x1004
 ceil.w.s -7 -7.294568
+fcsr: 0x1004
 ceil.w.s -347856 -347856.468750
+fcsr: 0x1004
 ceil.w.s 356048 356047.562500
+fcsr: 0x1004
 ceil.w.s -1 -1.000000
+fcsr: 0x4
 ceil.w.s 24 23.040001
+fcsr: 0x1004
 ceil.w.d 0 0.000000
+fcsr: 0x4
 ceil.w.d 457 456.248956
+fcsr: 0x1004
 ceil.w.d 3 3.000000
+fcsr: 0x4
 ceil.w.d -1 -1.000000
+fcsr: 0x4
 ceil.w.d 1385 1384.600000
+fcsr: 0x1004
 ceil.w.d -7 -7.294568
+fcsr: 0x1004
 ceil.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 ceil.w.d -5786 -5786.470000
+fcsr: 0x1004
 ceil.w.d 1752 1752.000000
+fcsr: 0x4
 ceil.w.d 1 0.002458
+fcsr: 0x1004
 ceil.w.d 1 0.000000
+fcsr: 0x1004
 ceil.w.d -248562 -248562.760000
+fcsr: 0x1004
 ceil.w.d -45786 -45786.476000
+fcsr: 0x1004
 ceil.w.d 457 456.248956
+fcsr: 0x1004
 ceil.w.d 35 34.000460
+fcsr: 0x1004
 ceil.w.d 45787 45786.476000
+fcsr: 0x1004
 ceil.w.d 1752065 1752065.000000
+fcsr: 0x4
 ceil.w.d 107 107.000000
+fcsr: 0x4
 ceil.w.d -45667 -45667.240000
+fcsr: 0x1004
 ceil.w.d -7 -7.294568
+fcsr: 0x1004
 ceil.w.d -347856 -347856.475000
+fcsr: 0x1004
 ceil.w.d 356048 356047.560000
+fcsr: 0x1004
 ceil.w.d -1 -1.000000
+fcsr: 0x4
 ceil.w.d 24 23.040000
+fcsr: 0x1004
 floor.w.s 0 0.000000
+fcsr: 0x4
 floor.w.s 456 456.248962
+fcsr: 0x1004
 floor.w.s 3 3.000000
+fcsr: 0x4
 floor.w.s -1 -1.000000
+fcsr: 0x4
 floor.w.s 1384 1384.599976
+fcsr: 0x1004
 floor.w.s -8 -7.294568
+fcsr: 0x1004
 floor.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 floor.w.s -5787 -5786.470215
+fcsr: 0x1004
 floor.w.s 1752 1752.000000
+fcsr: 0x4
 floor.w.s 0 0.002457
+fcsr: 0x1004
 floor.w.s 0 0.000000
+fcsr: 0x1004
 floor.w.s -248563 -248562.765625
+fcsr: 0x1004
 floor.w.s -45787 -45786.476562
+fcsr: 0x1004
 floor.w.s 456 456.248962
+fcsr: 0x1004
 floor.w.s 34 34.000462
+fcsr: 0x1004
 floor.w.s 45786 45786.476562
+fcsr: 0x1004
 floor.w.s 1752065 1752065.000000
+fcsr: 0x4
 floor.w.s 107 107.000000
+fcsr: 0x4
 floor.w.s -45668 -45667.238281
+fcsr: 0x1004
 floor.w.s -8 -7.294568
+fcsr: 0x1004
 floor.w.s -347857 -347856.468750
+fcsr: 0x1004
 floor.w.s 356047 356047.562500
+fcsr: 0x1004
 floor.w.s -1 -1.000000
+fcsr: 0x4
 floor.w.s 23 23.040001
+fcsr: 0x1004
 floor.w.d 0 0.000000
+fcsr: 0x4
 floor.w.d 456 456.248956
+fcsr: 0x1004
 floor.w.d 3 3.000000
+fcsr: 0x4
 floor.w.d -1 -1.000000
+fcsr: 0x4
 floor.w.d 1384 1384.600000
+fcsr: 0x1004
 floor.w.d -8 -7.294568
+fcsr: 0x1004
 floor.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 floor.w.d -5787 -5786.470000
+fcsr: 0x1004
 floor.w.d 1752 1752.000000
+fcsr: 0x4
 floor.w.d 0 0.002458
+fcsr: 0x1004
 floor.w.d 0 0.000000
+fcsr: 0x1004
 floor.w.d -248563 -248562.760000
+fcsr: 0x1004
 floor.w.d -45787 -45786.476000
+fcsr: 0x1004
 floor.w.d 456 456.248956
+fcsr: 0x1004
 floor.w.d 34 34.000460
+fcsr: 0x1004
 floor.w.d 45786 45786.476000
+fcsr: 0x1004
 floor.w.d 1752065 1752065.000000
+fcsr: 0x4
 floor.w.d 107 107.000000
+fcsr: 0x4
 floor.w.d -45668 -45667.240000
+fcsr: 0x1004
 floor.w.d -8 -7.294568
+fcsr: 0x1004
 floor.w.d -347857 -347856.475000
+fcsr: 0x1004
 floor.w.d 356047 356047.560000
+fcsr: 0x1004
 floor.w.d -1 -1.000000
+fcsr: 0x4
 floor.w.d 23 23.040000
+fcsr: 0x1004
 round.w.s 0 0.000000
+fcsr: 0x4
 round.w.s 456 456.248962
+fcsr: 0x1004
 round.w.s 3 3.000000
+fcsr: 0x4
 round.w.s -1 -1.000000
+fcsr: 0x4
 round.w.s 1385 1384.599976
+fcsr: 0x1004
 round.w.s -7 -7.294568
+fcsr: 0x1004
 round.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 round.w.s -5786 -5786.470215
+fcsr: 0x1004
 round.w.s 1752 1752.000000
+fcsr: 0x4
 round.w.s 0 0.002457
+fcsr: 0x1004
 round.w.s 0 0.000000
+fcsr: 0x1004
 round.w.s -248563 -248562.765625
+fcsr: 0x1004
 round.w.s -45786 -45786.476562
+fcsr: 0x1004
 round.w.s 456 456.248962
+fcsr: 0x1004
 round.w.s 34 34.000462
+fcsr: 0x1004
 round.w.s 45786 45786.476562
+fcsr: 0x1004
 round.w.s 1752065 1752065.000000
+fcsr: 0x4
 round.w.s 107 107.000000
+fcsr: 0x4
 round.w.s -45667 -45667.238281
+fcsr: 0x1004
 round.w.s -7 -7.294568
+fcsr: 0x1004
 round.w.s -347856 -347856.468750
+fcsr: 0x1004
 round.w.s 356048 356047.562500
+fcsr: 0x1004
 round.w.s -1 -1.000000
+fcsr: 0x4
 round.w.s 23 23.040001
+fcsr: 0x1004
 round.w.d 0 0.000000
+fcsr: 0x4
 round.w.d 456 456.248956
+fcsr: 0x1004
 round.w.d 3 3.000000
+fcsr: 0x4
 round.w.d -1 -1.000000
+fcsr: 0x4
 round.w.d 1385 1384.600000
+fcsr: 0x1004
 round.w.d -7 -7.294568
+fcsr: 0x1004
 round.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 round.w.d -5786 -5786.470000
+fcsr: 0x1004
 round.w.d 1752 1752.000000
+fcsr: 0x4
 round.w.d 0 0.002458
+fcsr: 0x1004
 round.w.d 0 0.000000
+fcsr: 0x1004
 round.w.d -248563 -248562.760000
+fcsr: 0x1004
 round.w.d -45786 -45786.476000
+fcsr: 0x1004
 round.w.d 456 456.248956
+fcsr: 0x1004
 round.w.d 34 34.000460
+fcsr: 0x1004
 round.w.d 45786 45786.476000
+fcsr: 0x1004
 round.w.d 1752065 1752065.000000
+fcsr: 0x4
 round.w.d 107 107.000000
+fcsr: 0x4
 round.w.d -45667 -45667.240000
+fcsr: 0x1004
 round.w.d -7 -7.294568
+fcsr: 0x1004
 round.w.d -347856 -347856.475000
+fcsr: 0x1004
 round.w.d 356048 356047.560000
+fcsr: 0x1004
 round.w.d -1 -1.000000
+fcsr: 0x4
 round.w.d 23 23.040000
+fcsr: 0x1004
 trunc.w.s 0 0.000000
+fcsr: 0x4
 trunc.w.s 456 456.248962
+fcsr: 0x1004
 trunc.w.s 3 3.000000
+fcsr: 0x4
 trunc.w.s -1 -1.000000
+fcsr: 0x4
 trunc.w.s 1384 1384.599976
+fcsr: 0x1004
 trunc.w.s -7 -7.294568
+fcsr: 0x1004
 trunc.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 trunc.w.s -5786 -5786.470215
+fcsr: 0x1004
 trunc.w.s 1752 1752.000000
+fcsr: 0x4
 trunc.w.s 0 0.002457
+fcsr: 0x1004
 trunc.w.s 0 0.000000
+fcsr: 0x1004
 trunc.w.s -248562 -248562.765625
+fcsr: 0x1004
 trunc.w.s -45786 -45786.476562
+fcsr: 0x1004
 trunc.w.s 456 456.248962
+fcsr: 0x1004
 trunc.w.s 34 34.000462
+fcsr: 0x1004
 trunc.w.s 45786 45786.476562
+fcsr: 0x1004
 trunc.w.s 1752065 1752065.000000
+fcsr: 0x4
 trunc.w.s 107 107.000000
+fcsr: 0x4
 trunc.w.s -45667 -45667.238281
+fcsr: 0x1004
 trunc.w.s -7 -7.294568
+fcsr: 0x1004
 trunc.w.s -347856 -347856.468750
+fcsr: 0x1004
 trunc.w.s 356047 356047.562500
+fcsr: 0x1004
 trunc.w.s -1 -1.000000
+fcsr: 0x4
 trunc.w.s 23 23.040001
+fcsr: 0x1004
 trunc.w.d 0 0.000000
+fcsr: 0x4
 trunc.w.d 456 456.248956
+fcsr: 0x1004
 trunc.w.d 3 3.000000
+fcsr: 0x4
 trunc.w.d -1 -1.000000
+fcsr: 0x4
 trunc.w.d 1384 1384.600000
+fcsr: 0x1004
 trunc.w.d -7 -7.294568
+fcsr: 0x1004
 trunc.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 trunc.w.d -5786 -5786.470000
+fcsr: 0x1004
 trunc.w.d 1752 1752.000000
+fcsr: 0x4
 trunc.w.d 0 0.002458
+fcsr: 0x1004
 trunc.w.d 0 0.000000
+fcsr: 0x1004
 trunc.w.d -248562 -248562.760000
+fcsr: 0x1004
 trunc.w.d -45786 -45786.476000
+fcsr: 0x1004
 trunc.w.d 456 456.248956
+fcsr: 0x1004
 trunc.w.d 34 34.000460
+fcsr: 0x1004
 trunc.w.d 45786 45786.476000
+fcsr: 0x1004
 trunc.w.d 1752065 1752065.000000
+fcsr: 0x4
 trunc.w.d 107 107.000000
+fcsr: 0x4
 trunc.w.d -45667 -45667.240000
+fcsr: 0x1004
 trunc.w.d -7 -7.294568
+fcsr: 0x1004
 trunc.w.d -347856 -347856.475000
+fcsr: 0x1004
 trunc.w.d 356047 356047.560000
+fcsr: 0x1004
 trunc.w.d -1 -1.000000
+fcsr: 0x4
 trunc.w.d 23 23.040000
+fcsr: 0x1004
 -------------------------- test FPU Conversion Operations Using the FCSR Rounding Mode --------------------------
 roundig mode: near
 cvt.d.s 0.000000 0.000000
+fcsr: 0x4
 cvt.d.s 456.248962 456.248962
+fcsr: 0x4
 cvt.d.s 3.000000 3.000000
+fcsr: 0x4
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x4
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x4
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x4
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x4
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x4
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x4
 cvt.d.s 0.002457 0.002457
+fcsr: 0x4
 cvt.d.s 0.000000 0.000000
+fcsr: 0x4
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x4
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x4
 cvt.d.s 456.248962 456.248962
+fcsr: 0x4
 cvt.d.s 34.000462 34.000462
+fcsr: 0x4
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x4
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x4
 cvt.d.s 107.000000 107.000000
+fcsr: 0x4
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x4
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x4
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x4
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x4
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x4
 cvt.d.s 23.040001 23.040001
+fcsr: 0x4
 roundig mode: zero
 cvt.d.s 0.000000 0.000000
+fcsr: 0x5
 cvt.d.s 456.248962 456.248962
+fcsr: 0x5
 cvt.d.s 3.000000 3.000000
+fcsr: 0x5
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x5
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x5
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x5
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x5
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x5
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x5
 cvt.d.s 0.002457 0.002457
+fcsr: 0x5
 cvt.d.s 0.000000 0.000000
+fcsr: 0x5
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x5
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x5
 cvt.d.s 456.248962 456.248962
+fcsr: 0x5
 cvt.d.s 34.000462 34.000462
+fcsr: 0x5
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x5
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x5
 cvt.d.s 107.000000 107.000000
+fcsr: 0x5
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x5
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x5
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x5
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x5
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x5
 cvt.d.s 23.040001 23.040001
+fcsr: 0x5
 roundig mode: +inf
 cvt.d.s 0.000000 0.000000
+fcsr: 0x6
 cvt.d.s 456.248962 456.248962
+fcsr: 0x6
 cvt.d.s 3.000000 3.000000
+fcsr: 0x6
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x6
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x6
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x6
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x6
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x6
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x6
 cvt.d.s 0.002457 0.002457
+fcsr: 0x6
 cvt.d.s 0.000000 0.000000
+fcsr: 0x6
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x6
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x6
 cvt.d.s 456.248962 456.248962
+fcsr: 0x6
 cvt.d.s 34.000462 34.000462
+fcsr: 0x6
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x6
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x6
 cvt.d.s 107.000000 107.000000
+fcsr: 0x6
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x6
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x6
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x6
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x6
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x6
 cvt.d.s 23.040001 23.040001
+fcsr: 0x6
 roundig mode: -inf
 cvt.d.s 0.000000 0.000000
+fcsr: 0x7
 cvt.d.s 456.248962 456.248962
+fcsr: 0x7
 cvt.d.s 3.000000 3.000000
+fcsr: 0x7
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x7
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x7
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x7
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x7
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x7
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x7
 cvt.d.s 0.002457 0.002457
+fcsr: 0x7
 cvt.d.s 0.000000 0.000000
+fcsr: 0x7
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x7
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x7
 cvt.d.s 456.248962 456.248962
+fcsr: 0x7
 cvt.d.s 34.000462 34.000462
+fcsr: 0x7
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x7
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x7
 cvt.d.s 107.000000 107.000000
+fcsr: 0x7
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x7
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x7
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x7
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x7
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x7
 cvt.d.s 23.040001 23.040001
+fcsr: 0x7
 roundig mode: near
 cvt.d.w 0.000000 0
+fcsr: 0x4
 cvt.d.w 456.000000 456
+fcsr: 0x4
 cvt.d.w 3.000000 3
+fcsr: 0x4
 cvt.d.w -1.000000 -1
+fcsr: 0x4
 cvt.d.w -1.000000 -1
+fcsr: 0x4
 cvt.d.w 356.000000 356
+fcsr: 0x4
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x4
 cvt.d.w -5786.000000 -5786
+fcsr: 0x4
 cvt.d.w 1752.000000 1752
+fcsr: 0x4
 cvt.d.w 24575.000000 24575
+fcsr: 0x4
 cvt.d.w 10.000000 10
+fcsr: 0x4
 cvt.d.w -248562.000000 -248562
+fcsr: 0x4
 cvt.d.w -45786.000000 -45786
+fcsr: 0x4
 cvt.d.w 456.000000 456
+fcsr: 0x4
 cvt.d.w 34.000000 34
+fcsr: 0x4
 cvt.d.w 45786.000000 45786
+fcsr: 0x4
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x4
 cvt.d.w 107.000000 107
+fcsr: 0x4
 cvt.d.w -45667.000000 -45667
+fcsr: 0x4
 cvt.d.w -7.000000 -7
+fcsr: 0x4
 cvt.d.w -347856.000000 -347856
+fcsr: 0x4
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x4
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x4
 cvt.d.w 23.000000 23
+fcsr: 0x4
 roundig mode: zero
 cvt.d.w 0.000000 0
+fcsr: 0x5
 cvt.d.w 456.000000 456
+fcsr: 0x5
 cvt.d.w 3.000000 3
+fcsr: 0x5
 cvt.d.w -1.000000 -1
+fcsr: 0x5
 cvt.d.w -1.000000 -1
+fcsr: 0x5
 cvt.d.w 356.000000 356
+fcsr: 0x5
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x5
 cvt.d.w -5786.000000 -5786
+fcsr: 0x5
 cvt.d.w 1752.000000 1752
+fcsr: 0x5
 cvt.d.w 24575.000000 24575
+fcsr: 0x5
 cvt.d.w 10.000000 10
+fcsr: 0x5
 cvt.d.w -248562.000000 -248562
+fcsr: 0x5
 cvt.d.w -45786.000000 -45786
+fcsr: 0x5
 cvt.d.w 456.000000 456
+fcsr: 0x5
 cvt.d.w 34.000000 34
+fcsr: 0x5
 cvt.d.w 45786.000000 45786
+fcsr: 0x5
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x5
 cvt.d.w 107.000000 107
+fcsr: 0x5
 cvt.d.w -45667.000000 -45667
+fcsr: 0x5
 cvt.d.w -7.000000 -7
+fcsr: 0x5
 cvt.d.w -347856.000000 -347856
+fcsr: 0x5
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x5
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x5
 cvt.d.w 23.000000 23
+fcsr: 0x5
 roundig mode: +inf
 cvt.d.w 0.000000 0
+fcsr: 0x6
 cvt.d.w 456.000000 456
+fcsr: 0x6
 cvt.d.w 3.000000 3
+fcsr: 0x6
 cvt.d.w -1.000000 -1
+fcsr: 0x6
 cvt.d.w -1.000000 -1
+fcsr: 0x6
 cvt.d.w 356.000000 356
+fcsr: 0x6
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x6
 cvt.d.w -5786.000000 -5786
+fcsr: 0x6
 cvt.d.w 1752.000000 1752
+fcsr: 0x6
 cvt.d.w 24575.000000 24575
+fcsr: 0x6
 cvt.d.w 10.000000 10
+fcsr: 0x6
 cvt.d.w -248562.000000 -248562
+fcsr: 0x6
 cvt.d.w -45786.000000 -45786
+fcsr: 0x6
 cvt.d.w 456.000000 456
+fcsr: 0x6
 cvt.d.w 34.000000 34
+fcsr: 0x6
 cvt.d.w 45786.000000 45786
+fcsr: 0x6
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x6
 cvt.d.w 107.000000 107
+fcsr: 0x6
 cvt.d.w -45667.000000 -45667
+fcsr: 0x6
 cvt.d.w -7.000000 -7
+fcsr: 0x6
 cvt.d.w -347856.000000 -347856
+fcsr: 0x6
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x6
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x6
 cvt.d.w 23.000000 23
+fcsr: 0x6
 roundig mode: -inf
 cvt.d.w 0.000000 0
+fcsr: 0x7
 cvt.d.w 456.000000 456
+fcsr: 0x7
 cvt.d.w 3.000000 3
+fcsr: 0x7
 cvt.d.w -1.000000 -1
+fcsr: 0x7
 cvt.d.w -1.000000 -1
+fcsr: 0x7
 cvt.d.w 356.000000 356
+fcsr: 0x7
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x7
 cvt.d.w -5786.000000 -5786
+fcsr: 0x7
 cvt.d.w 1752.000000 1752
+fcsr: 0x7
 cvt.d.w 24575.000000 24575
+fcsr: 0x7
 cvt.d.w 10.000000 10
+fcsr: 0x7
 cvt.d.w -248562.000000 -248562
+fcsr: 0x7
 cvt.d.w -45786.000000 -45786
+fcsr: 0x7
 cvt.d.w 456.000000 456
+fcsr: 0x7
 cvt.d.w 34.000000 34
+fcsr: 0x7
 cvt.d.w 45786.000000 45786
+fcsr: 0x7
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x7
 cvt.d.w 107.000000 107
+fcsr: 0x7
 cvt.d.w -45667.000000 -45667
+fcsr: 0x7
 cvt.d.w -7.000000 -7
+fcsr: 0x7
 cvt.d.w -347856.000000 -347856
+fcsr: 0x7
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x7
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x7
 cvt.d.w 23.000000 23
+fcsr: 0x7
 roundig mode: near
 cvt.s.d 0.000000 0.000000
+fcsr: 0x4
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1004
 cvt.s.d 3.000000 3.000000
+fcsr: 0x4
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x4
 cvt.s.d 1384.599976 1384.600000
+fcsr: 0x1004
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1004
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x4
 cvt.s.d -5786.470215 -5786.470000
+fcsr: 0x1004
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x4
 cvt.s.d 0.002457 0.002458
+fcsr: 0x1004
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1004
 cvt.s.d -248562.765625 -248562.760000
+fcsr: 0x1004
 cvt.s.d -45786.476562 -45786.476000
+fcsr: 0x1004
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1004
 cvt.s.d 34.000462 34.000460
+fcsr: 0x1004
 cvt.s.d 45786.476562 45786.476000
+fcsr: 0x1004
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x4
 cvt.s.d 107.000000 107.000000
+fcsr: 0x4
 cvt.s.d -45667.238281 -45667.240000
+fcsr: 0x1004
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1004
 cvt.s.d -347856.468750 -347856.475000
+fcsr: 0x1004
 cvt.s.d 356047.562500 356047.560000
+fcsr: 0x1004
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x4
 cvt.s.d 23.040001 23.040000
+fcsr: 0x1004
 roundig mode: zero
 cvt.s.d 0.000000 0.000000
+fcsr: 0x5
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1005
 cvt.s.d 3.000000 3.000000
+fcsr: 0x5
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x5
 cvt.s.d 1384.599976 1384.600000
+fcsr: 0x1005
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1005
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x5
 cvt.s.d -5786.469727 -5786.470000
+fcsr: 0x1005
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x5
 cvt.s.d 0.002457 0.002458
+fcsr: 0x1005
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1005
 cvt.s.d -248562.750000 -248562.760000
+fcsr: 0x1005
 cvt.s.d -45786.472656 -45786.476000
+fcsr: 0x1005
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1005
 cvt.s.d 34.000458 34.000460
+fcsr: 0x1005
 cvt.s.d 45786.472656 45786.476000
+fcsr: 0x1005
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x5
 cvt.s.d 107.000000 107.000000
+fcsr: 0x5
 cvt.s.d -45667.238281 -45667.240000
+fcsr: 0x1005
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1005
 cvt.s.d -347856.468750 -347856.475000
+fcsr: 0x1005
 cvt.s.d 356047.531250 356047.560000
+fcsr: 0x1005
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x5
 cvt.s.d 23.039999 23.040000
+fcsr: 0x1005
 roundig mode: +inf
 cvt.s.d 0.000000 0.000000
+fcsr: 0x6
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1006
 cvt.s.d 3.000000 3.000000
+fcsr: 0x6
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x6
 cvt.s.d 1384.600098 1384.600000
+fcsr: 0x1006
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1006
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x6
 cvt.s.d -5786.469727 -5786.470000
+fcsr: 0x1006
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x6
 cvt.s.d 0.002458 0.002458
+fcsr: 0x1006
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1006
 cvt.s.d -248562.750000 -248562.760000
+fcsr: 0x1006
 cvt.s.d -45786.472656 -45786.476000
+fcsr: 0x1006
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1006
 cvt.s.d 34.000462 34.000460
+fcsr: 0x1006
 cvt.s.d 45786.476562 45786.476000
+fcsr: 0x1006
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x6
 cvt.s.d 107.000000 107.000000
+fcsr: 0x6
 cvt.s.d -45667.238281 -45667.240000
+fcsr: 0x1006
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1006
 cvt.s.d -347856.468750 -347856.475000
+fcsr: 0x1006
 cvt.s.d 356047.562500 356047.560000
+fcsr: 0x1006
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x6
 cvt.s.d 23.040001 23.040000
+fcsr: 0x1006
 roundig mode: -inf
 cvt.s.d 0.000000 0.000000
+fcsr: 0x7
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1007
 cvt.s.d 3.000000 3.000000
+fcsr: 0x7
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x7
 cvt.s.d 1384.599976 1384.600000
+fcsr: 0x1007
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1007
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x7
 cvt.s.d -5786.470215 -5786.470000
+fcsr: 0x1007
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x7
 cvt.s.d 0.002457 0.002458
+fcsr: 0x1007
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1007
 cvt.s.d -248562.765625 -248562.760000
+fcsr: 0x1007
 cvt.s.d -45786.476562 -45786.476000
+fcsr: 0x1007
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1007
 cvt.s.d 34.000458 34.000460
+fcsr: 0x1007
 cvt.s.d 45786.472656 45786.476000
+fcsr: 0x1007
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x7
 cvt.s.d 107.000000 107.000000
+fcsr: 0x7
 cvt.s.d -45667.242188 -45667.240000
+fcsr: 0x1007
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1007
 cvt.s.d -347856.500000 -347856.475000
+fcsr: 0x1007
 cvt.s.d 356047.531250 356047.560000
+fcsr: 0x1007
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x7
 cvt.s.d 23.039999 23.040000
+fcsr: 0x1007
 roundig mode: near
 cvt.s.w 0.000000 0
+fcsr: 0x4
 cvt.s.w 456.000000 456
+fcsr: 0x4
 cvt.s.w 3.000000 3
+fcsr: 0x4
 cvt.s.w -1.000000 -1
+fcsr: 0x4
 cvt.s.w -1.000000 -1
+fcsr: 0x4
 cvt.s.w 356.000000 356
+fcsr: 0x4
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x4
 cvt.s.w -5786.000000 -5786
+fcsr: 0x4
 cvt.s.w 1752.000000 1752
+fcsr: 0x4
 cvt.s.w 24575.000000 24575
+fcsr: 0x4
 cvt.s.w 10.000000 10
+fcsr: 0x4
 cvt.s.w -248562.000000 -248562
+fcsr: 0x4
 cvt.s.w -45786.000000 -45786
+fcsr: 0x4
 cvt.s.w 456.000000 456
+fcsr: 0x4
 cvt.s.w 34.000000 34
+fcsr: 0x4
 cvt.s.w 45786.000000 45786
+fcsr: 0x4
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x4
 cvt.s.w 107.000000 107
+fcsr: 0x4
 cvt.s.w -45667.000000 -45667
+fcsr: 0x4
 cvt.s.w -7.000000 -7
+fcsr: 0x4
 cvt.s.w -347856.000000 -347856
+fcsr: 0x4
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x4
 cvt.s.w 268435456.000000 268435455
+fcsr: 0x1004
 cvt.s.w 23.000000 23
+fcsr: 0x4
 roundig mode: zero
 cvt.s.w 0.000000 0
+fcsr: 0x5
 cvt.s.w 456.000000 456
+fcsr: 0x5
 cvt.s.w 3.000000 3
+fcsr: 0x5
 cvt.s.w -1.000000 -1
+fcsr: 0x5
 cvt.s.w -1.000000 -1
+fcsr: 0x5
 cvt.s.w 356.000000 356
+fcsr: 0x5
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x5
 cvt.s.w -5786.000000 -5786
+fcsr: 0x5
 cvt.s.w 1752.000000 1752
+fcsr: 0x5
 cvt.s.w 24575.000000 24575
+fcsr: 0x5
 cvt.s.w 10.000000 10
+fcsr: 0x5
 cvt.s.w -248562.000000 -248562
+fcsr: 0x5
 cvt.s.w -45786.000000 -45786
+fcsr: 0x5
 cvt.s.w 456.000000 456
+fcsr: 0x5
 cvt.s.w 34.000000 34
+fcsr: 0x5
 cvt.s.w 45786.000000 45786
+fcsr: 0x5
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x5
 cvt.s.w 107.000000 107
+fcsr: 0x5
 cvt.s.w -45667.000000 -45667
+fcsr: 0x5
 cvt.s.w -7.000000 -7
+fcsr: 0x5
 cvt.s.w -347856.000000 -347856
+fcsr: 0x5
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x5
 cvt.s.w 268435440.000000 268435455
+fcsr: 0x1005
 cvt.s.w 23.000000 23
+fcsr: 0x5
 roundig mode: +inf
 cvt.s.w 0.000000 0
+fcsr: 0x6
 cvt.s.w 456.000000 456
+fcsr: 0x6
 cvt.s.w 3.000000 3
+fcsr: 0x6
 cvt.s.w -1.000000 -1
+fcsr: 0x6
 cvt.s.w -1.000000 -1
+fcsr: 0x6
 cvt.s.w 356.000000 356
+fcsr: 0x6
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x6
 cvt.s.w -5786.000000 -5786
+fcsr: 0x6
 cvt.s.w 1752.000000 1752
+fcsr: 0x6
 cvt.s.w 24575.000000 24575
+fcsr: 0x6
 cvt.s.w 10.000000 10
+fcsr: 0x6
 cvt.s.w -248562.000000 -248562
+fcsr: 0x6
 cvt.s.w -45786.000000 -45786
+fcsr: 0x6
 cvt.s.w 456.000000 456
+fcsr: 0x6
 cvt.s.w 34.000000 34
+fcsr: 0x6
 cvt.s.w 45786.000000 45786
+fcsr: 0x6
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x6
 cvt.s.w 107.000000 107
+fcsr: 0x6
 cvt.s.w -45667.000000 -45667
+fcsr: 0x6
 cvt.s.w -7.000000 -7
+fcsr: 0x6
 cvt.s.w -347856.000000 -347856
+fcsr: 0x6
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x6
 cvt.s.w 268435456.000000 268435455
+fcsr: 0x1006
 cvt.s.w 23.000000 23
+fcsr: 0x6
 roundig mode: -inf
 cvt.s.w 0.000000 0
+fcsr: 0x7
 cvt.s.w 456.000000 456
+fcsr: 0x7
 cvt.s.w 3.000000 3
+fcsr: 0x7
 cvt.s.w -1.000000 -1
+fcsr: 0x7
 cvt.s.w -1.000000 -1
+fcsr: 0x7
 cvt.s.w 356.000000 356
+fcsr: 0x7
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x7
 cvt.s.w -5786.000000 -5786
+fcsr: 0x7
 cvt.s.w 1752.000000 1752
+fcsr: 0x7
 cvt.s.w 24575.000000 24575
+fcsr: 0x7
 cvt.s.w 10.000000 10
+fcsr: 0x7
 cvt.s.w -248562.000000 -248562
+fcsr: 0x7
 cvt.s.w -45786.000000 -45786
+fcsr: 0x7
 cvt.s.w 456.000000 456
+fcsr: 0x7
 cvt.s.w 34.000000 34
+fcsr: 0x7
 cvt.s.w 45786.000000 45786
+fcsr: 0x7
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x7
 cvt.s.w 107.000000 107
+fcsr: 0x7
 cvt.s.w -45667.000000 -45667
+fcsr: 0x7
 cvt.s.w -7.000000 -7
+fcsr: 0x7
 cvt.s.w -347856.000000 -347856
+fcsr: 0x7
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x7
 cvt.s.w 268435440.000000 268435455
+fcsr: 0x1007
 cvt.s.w 23.000000 23
+fcsr: 0x7
 roundig mode: near
 cvt.w.s 0 0.000000
+fcsr: 0x4
 cvt.w.s 456 456.248962
+fcsr: 0x1004
 cvt.w.s 3 3.000000
+fcsr: 0x4
 cvt.w.s -1 -1.000000
+fcsr: 0x4
 cvt.w.s 1385 1384.599976
+fcsr: 0x1004
 cvt.w.s -7 -7.294568
+fcsr: 0x1004
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 cvt.w.s -5786 -5786.470215
+fcsr: 0x1004
 cvt.w.s 1752 1752.000000
+fcsr: 0x4
 cvt.w.s 0 0.002457
+fcsr: 0x1004
 cvt.w.s 0 0.000000
+fcsr: 0x1004
 cvt.w.s -248563 -248562.765625
+fcsr: 0x1004
 cvt.w.s -45786 -45786.476562
+fcsr: 0x1004
 cvt.w.s 456 456.248962
+fcsr: 0x1004
 cvt.w.s 34 34.000462
+fcsr: 0x1004
 cvt.w.s 45786 45786.476562
+fcsr: 0x1004
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x4
 cvt.w.s 107 107.000000
+fcsr: 0x4
 cvt.w.s -45667 -45667.238281
+fcsr: 0x1004
 cvt.w.s -7 -7.294568
+fcsr: 0x1004
 cvt.w.s -347856 -347856.468750
+fcsr: 0x1004
 cvt.w.s 356048 356047.562500
+fcsr: 0x1004
 cvt.w.s -1 -1.000000
+fcsr: 0x4
 cvt.w.s 23 23.040001
+fcsr: 0x1004
 roundig mode: zero
 cvt.w.s 0 0.000000
+fcsr: 0x5
 cvt.w.s 456 456.248962
+fcsr: 0x1005
 cvt.w.s 3 3.000000
+fcsr: 0x5
 cvt.w.s -1 -1.000000
+fcsr: 0x5
 cvt.w.s 1384 1384.599976
+fcsr: 0x1005
 cvt.w.s -7 -7.294568
+fcsr: 0x1005
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x5
 cvt.w.s -5786 -5786.470215
+fcsr: 0x1005
 cvt.w.s 1752 1752.000000
+fcsr: 0x5
 cvt.w.s 0 0.002457
+fcsr: 0x1005
 cvt.w.s 0 0.000000
+fcsr: 0x1005
 cvt.w.s -248562 -248562.765625
+fcsr: 0x1005
 cvt.w.s -45786 -45786.476562
+fcsr: 0x1005
 cvt.w.s 456 456.248962
+fcsr: 0x1005
 cvt.w.s 34 34.000462
+fcsr: 0x1005
 cvt.w.s 45786 45786.476562
+fcsr: 0x1005
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x5
 cvt.w.s 107 107.000000
+fcsr: 0x5
 cvt.w.s -45667 -45667.238281
+fcsr: 0x1005
 cvt.w.s -7 -7.294568
+fcsr: 0x1005
 cvt.w.s -347856 -347856.468750
+fcsr: 0x1005
 cvt.w.s 356047 356047.562500
+fcsr: 0x1005
 cvt.w.s -1 -1.000000
+fcsr: 0x5
 cvt.w.s 23 23.040001
+fcsr: 0x1005
 roundig mode: +inf
 cvt.w.s 0 0.000000
+fcsr: 0x6
 cvt.w.s 457 456.248962
+fcsr: 0x1006
 cvt.w.s 3 3.000000
+fcsr: 0x6
 cvt.w.s -1 -1.000000
+fcsr: 0x6
 cvt.w.s 1385 1384.599976
+fcsr: 0x1006
 cvt.w.s -7 -7.294568
+fcsr: 0x1006
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x6
 cvt.w.s -5786 -5786.470215
+fcsr: 0x1006
 cvt.w.s 1752 1752.000000
+fcsr: 0x6
 cvt.w.s 1 0.002457
+fcsr: 0x1006
 cvt.w.s 1 0.000000
+fcsr: 0x1006
 cvt.w.s -248562 -248562.765625
+fcsr: 0x1006
 cvt.w.s -45786 -45786.476562
+fcsr: 0x1006
 cvt.w.s 457 456.248962
+fcsr: 0x1006
 cvt.w.s 35 34.000462
+fcsr: 0x1006
 cvt.w.s 45787 45786.476562
+fcsr: 0x1006
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x6
 cvt.w.s 107 107.000000
+fcsr: 0x6
 cvt.w.s -45667 -45667.238281
+fcsr: 0x1006
 cvt.w.s -7 -7.294568
+fcsr: 0x1006
 cvt.w.s -347856 -347856.468750
+fcsr: 0x1006
 cvt.w.s 356048 356047.562500
+fcsr: 0x1006
 cvt.w.s -1 -1.000000
+fcsr: 0x6
 cvt.w.s 24 23.040001
+fcsr: 0x1006
 roundig mode: -inf
 cvt.w.s 0 0.000000
+fcsr: 0x7
 cvt.w.s 456 456.248962
+fcsr: 0x1007
 cvt.w.s 3 3.000000
+fcsr: 0x7
 cvt.w.s -1 -1.000000
+fcsr: 0x7
 cvt.w.s 1384 1384.599976
+fcsr: 0x1007
 cvt.w.s -8 -7.294568
+fcsr: 0x1007
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x7
 cvt.w.s -5787 -5786.470215
+fcsr: 0x1007
 cvt.w.s 1752 1752.000000
+fcsr: 0x7
 cvt.w.s 0 0.002457
+fcsr: 0x1007
 cvt.w.s 0 0.000000
+fcsr: 0x1007
 cvt.w.s -248563 -248562.765625
+fcsr: 0x1007
 cvt.w.s -45787 -45786.476562
+fcsr: 0x1007
 cvt.w.s 456 456.248962
+fcsr: 0x1007
 cvt.w.s 34 34.000462
+fcsr: 0x1007
 cvt.w.s 45786 45786.476562
+fcsr: 0x1007
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x7
 cvt.w.s 107 107.000000
+fcsr: 0x7
 cvt.w.s -45668 -45667.238281
+fcsr: 0x1007
 cvt.w.s -8 -7.294568
+fcsr: 0x1007
 cvt.w.s -347857 -347856.468750
+fcsr: 0x1007
 cvt.w.s 356047 356047.562500
+fcsr: 0x1007
 cvt.w.s -1 -1.000000
+fcsr: 0x7
 cvt.w.s 23 23.040001
+fcsr: 0x1007
 roundig mode: near
 cvt.w.d 0 0.000000
+fcsr: 0x4
 cvt.w.d 456 456.248956
+fcsr: 0x1004
 cvt.w.d 3 3.000000
+fcsr: 0x4
 cvt.w.d -1 -1.000000
+fcsr: 0x4
 cvt.w.d 1385 1384.600000
+fcsr: 0x1004
 cvt.w.d -7 -7.294568
+fcsr: 0x1004
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 cvt.w.d -5786 -5786.470000
+fcsr: 0x1004
 cvt.w.d 1752 1752.000000
+fcsr: 0x4
 cvt.w.d 0 0.002458
+fcsr: 0x1004
 cvt.w.d 0 0.000000
+fcsr: 0x1004
 cvt.w.d -248563 -248562.760000
+fcsr: 0x1004
 cvt.w.d -45786 -45786.476000
+fcsr: 0x1004
 cvt.w.d 456 456.248956
+fcsr: 0x1004
 cvt.w.d 34 34.000460
+fcsr: 0x1004
 cvt.w.d 45786 45786.476000
+fcsr: 0x1004
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x4
 cvt.w.d 107 107.000000
+fcsr: 0x4
 cvt.w.d -45667 -45667.240000
+fcsr: 0x1004
 cvt.w.d -7 -7.294568
+fcsr: 0x1004
 cvt.w.d -347856 -347856.475000
+fcsr: 0x1004
 cvt.w.d 356048 356047.560000
+fcsr: 0x1004
 cvt.w.d -1 -1.000000
+fcsr: 0x4
 cvt.w.d 23 23.040000
+fcsr: 0x1004
 roundig mode: zero
 cvt.w.d 0 0.000000
+fcsr: 0x5
 cvt.w.d 456 456.248956
+fcsr: 0x1005
 cvt.w.d 3 3.000000
+fcsr: 0x5
 cvt.w.d -1 -1.000000
+fcsr: 0x5
 cvt.w.d 1384 1384.600000
+fcsr: 0x1005
 cvt.w.d -7 -7.294568
+fcsr: 0x1005
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x5
 cvt.w.d -5786 -5786.470000
+fcsr: 0x1005
 cvt.w.d 1752 1752.000000
+fcsr: 0x5
 cvt.w.d 0 0.002458
+fcsr: 0x1005
 cvt.w.d 0 0.000000
+fcsr: 0x1005
 cvt.w.d -248562 -248562.760000
+fcsr: 0x1005
 cvt.w.d -45786 -45786.476000
+fcsr: 0x1005
 cvt.w.d 456 456.248956
+fcsr: 0x1005
 cvt.w.d 34 34.000460
+fcsr: 0x1005
 cvt.w.d 45786 45786.476000
+fcsr: 0x1005
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x5
 cvt.w.d 107 107.000000
+fcsr: 0x5
 cvt.w.d -45667 -45667.240000
+fcsr: 0x1005
 cvt.w.d -7 -7.294568
+fcsr: 0x1005
 cvt.w.d -347856 -347856.475000
+fcsr: 0x1005
 cvt.w.d 356047 356047.560000
+fcsr: 0x1005
 cvt.w.d -1 -1.000000
+fcsr: 0x5
 cvt.w.d 23 23.040000
+fcsr: 0x1005
 roundig mode: +inf
 cvt.w.d 0 0.000000
+fcsr: 0x6
 cvt.w.d 457 456.248956
+fcsr: 0x1006
 cvt.w.d 3 3.000000
+fcsr: 0x6
 cvt.w.d -1 -1.000000
+fcsr: 0x6
 cvt.w.d 1385 1384.600000
+fcsr: 0x1006
 cvt.w.d -7 -7.294568
+fcsr: 0x1006
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x6
 cvt.w.d -5786 -5786.470000
+fcsr: 0x1006
 cvt.w.d 1752 1752.000000
+fcsr: 0x6
 cvt.w.d 1 0.002458
+fcsr: 0x1006
 cvt.w.d 1 0.000000
+fcsr: 0x1006
 cvt.w.d -248562 -248562.760000
+fcsr: 0x1006
 cvt.w.d -45786 -45786.476000
+fcsr: 0x1006
 cvt.w.d 457 456.248956
+fcsr: 0x1006
 cvt.w.d 35 34.000460
+fcsr: 0x1006
 cvt.w.d 45787 45786.476000
+fcsr: 0x1006
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x6
 cvt.w.d 107 107.000000
+fcsr: 0x6
 cvt.w.d -45667 -45667.240000
+fcsr: 0x1006
 cvt.w.d -7 -7.294568
+fcsr: 0x1006
 cvt.w.d -347856 -347856.475000
+fcsr: 0x1006
 cvt.w.d 356048 356047.560000
+fcsr: 0x1006
 cvt.w.d -1 -1.000000
+fcsr: 0x6
 cvt.w.d 24 23.040000
+fcsr: 0x1006
 roundig mode: -inf
 cvt.w.d 0 0.000000
+fcsr: 0x7
 cvt.w.d 456 456.248956
+fcsr: 0x1007
 cvt.w.d 3 3.000000
+fcsr: 0x7
 cvt.w.d -1 -1.000000
+fcsr: 0x7
 cvt.w.d 1384 1384.600000
+fcsr: 0x1007
 cvt.w.d -8 -7.294568
+fcsr: 0x1007
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x7
 cvt.w.d -5787 -5786.470000
+fcsr: 0x1007
 cvt.w.d 1752 1752.000000
+fcsr: 0x7
 cvt.w.d 0 0.002458
+fcsr: 0x1007
 cvt.w.d 0 0.000000
+fcsr: 0x1007
 cvt.w.d -248563 -248562.760000
+fcsr: 0x1007
 cvt.w.d -45787 -45786.476000
+fcsr: 0x1007
 cvt.w.d 456 456.248956
+fcsr: 0x1007
 cvt.w.d 34 34.000460
+fcsr: 0x1007
 cvt.w.d 45786 45786.476000
+fcsr: 0x1007
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x7
 cvt.w.d 107 107.000000
+fcsr: 0x7
 cvt.w.d -45668 -45667.240000
+fcsr: 0x1007
 cvt.w.d -8 -7.294568
+fcsr: 0x1007
 cvt.w.d -347857 -347856.475000
+fcsr: 0x1007
 cvt.w.d 356047 356047.560000
+fcsr: 0x1007
 cvt.w.d -1 -1.000000
+fcsr: 0x7
 cvt.w.d 23 23.040000
+fcsr: 0x1007
diff --git a/none/tests/mips32/test_fcsr.c b/none/tests/mips32/test_fcsr.c
new file mode 100644
index 0000000..6ceda77
--- /dev/null
+++ b/none/tests/mips32/test_fcsr.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+
+int main ()
+{
+   int out [] = {0, 0};
+   __asm__ volatile("cfc1       $a1,   $31"         "\n\t"
+                    "li         $t0,   0xd70a3d71"  "\n\t"
+                    "mtc1       $t0,   $f0"         "\n\t"
+                    "li         $t0,   0x405ee0a3"  "\n\t"
+                    "mtc1       $t0,   $f1"         "\n\t"
+                    "ctc1       $zero, $31"         "\n\t"
+                    "round.w.d  $f0,   $f0"         "\n\t"
+                    "cfc1       $a2,   $31"         "\n\t"
+                    "sw         $a2,   0(%0)"       "\n\t"
+                    "li         $t0,   0x00000000"  "\n\t"
+                    "mtc1       $t0,   $f0"         "\n\t"
+                    "li         $t0,   0x3ff00000"  "\n\t"
+                    "mtc1       $t0,   $f1"         "\n\t"
+                    "ctc1       $zero, $31"         "\n\t"
+                    "round.w.d  $f0,   $f0"         "\n\t"
+                    "cfc1       $a2,   $31"         "\n\t"
+                    "sw         $a2,   4(%0)"       "\n\t"
+                    "ctc1       $a1,   $31"         "\n\t"
+                    :
+                    : "r" (out)
+                    : "a1", "a2", "t0", "$f0", "$f1"
+                   );
+   printf("FCSR::1: 0x%x, 2: 0x%x\n", out[0], out[1]);
+   return 0;
+}
diff --git a/none/tests/mips32/test_fcsr.stderr.exp b/none/tests/mips32/test_fcsr.stderr.exp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/none/tests/mips32/test_fcsr.stderr.exp
diff --git a/none/tests/mips32/test_fcsr.stdout.exp b/none/tests/mips32/test_fcsr.stdout.exp
new file mode 100644
index 0000000..a1f085b
--- /dev/null
+++ b/none/tests/mips32/test_fcsr.stdout.exp
@@ -0,0 +1 @@
+FCSR::1: 0x1004, 2: 0x0
diff --git a/none/tests/mips32/test_fcsr.vgtest b/none/tests/mips32/test_fcsr.vgtest
new file mode 100644
index 0000000..c864d25
--- /dev/null
+++ b/none/tests/mips32/test_fcsr.vgtest
@@ -0,0 +1,2 @@
+prog: test_fcsr
+vgopts: -q
diff --git a/none/tests/mips64/Makefile.am b/none/tests/mips64/Makefile.am
index 0184e09..b2d3441 100644
--- a/none/tests/mips64/Makefile.am
+++ b/none/tests/mips64/Makefile.am
@@ -40,7 +40,9 @@
 	unaligned_load.stdout.exp-BE unaligned_load.stdout.exp-LE \
 	unaligned_load.stderr.exp unaligned_load.vgtest \
 	unaligned_load_store.stdout.exp-LE unaligned_load_store.stdout.exp-BE \
-	unaligned_load_store.stderr.exp unaligned_load_store.vgtest
+	unaligned_load_store.stderr.exp unaligned_load_store.vgtest \
+	test_fcsr.stdout.exp test_fcsr.stderr.exp \
+	test_fcsr.vgtest
 
 check_PROGRAMS = \
 	allexec \
@@ -63,7 +65,8 @@
 	shift_instructions \
 	test_block_size \
 	unaligned_load \
-	unaligned_load_store
+	unaligned_load_store \
+	test_fcsr
 
 AM_CFLAGS    += @FLAG_M64@
 AM_CXXFLAGS  += @FLAG_M64@
diff --git a/none/tests/mips64/fpu_arithmetic.c b/none/tests/mips64/fpu_arithmetic.c
index 6b84210..0d6fba5 100644
--- a/none/tests/mips64/fpu_arithmetic.c
+++ b/none/tests/mips64/fpu_arithmetic.c
@@ -7,6 +7,7 @@
    double fd_d = 0;
    float fd_f = 0;
    int i = 0;
+   int fcsr = 0;
    round_mode_t rm;
    for (rm = TO_NEAREST; rm <= TO_MINUS_INFINITY; rm ++) {
       set_rounding_mode(rm);
diff --git a/none/tests/mips64/macro_fpu.h b/none/tests/mips64/macro_fpu.h
index 2d1c48c..8c804a5 100644
--- a/none/tests/mips64/macro_fpu.h
+++ b/none/tests/mips64/macro_fpu.h
@@ -52,147 +52,163 @@
    "cvt.l.d", "cvt.s.l",
 };
 
-#define UNOPdd(op)         \
-   fd_d = 0;               \
-   __asm__ __volatile__(   \
-      op" %0, %1"  "\n\t"  \
-      : "=f"(fd_d)         \
-      : "f"(fs_d[i])       \
+#define UNOPdd(op)               \
+   fd_d = 0;                     \
+   __asm__ __volatile__(         \
+      op"   %1, %2"   "\n\t"     \
+      "cfc1 %0, $31"  "\n\t"     \
+      : "=r" (fcsr), "=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 UNOPff(op)               \
+   fd_f = 0;                     \
+   __asm__ __volatile__(         \
+      op"   %1, %2"   "\n\t"     \
+      "cfc1 %0, $31"  "\n\t"     \
+      : "=r" (fcsr), "=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 UNOPfd(op)               \
+   fd_d = 0;                     \
+   __asm__ __volatile__(         \
+      op"   %1, %2"   "\n\t"     \
+      "cfc1 %0, $31"  "\n\t"     \
+      : "=r" (fcsr), "=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 UNOPdf(op)               \
+   fd_f = 0;                     \
+   __asm__ __volatile__(         \
+      op"   %1, %2"   "\n\t"     \
+      "cfc1 %0, $31"  "\n\t"     \
+      : "=r" (fcsr), "=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 UNOPfw(op)               \
+   fd_w = 0;                     \
+   __asm__ __volatile__(         \
+      op"   $f0, %2"   "\n\t"    \
+      "mfc1 %1,  $f0"  "\n\t"    \
+      "cfc1 %0,  $31"  "\n\t"    \
+      : "=r" (fcsr), "=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 UNOPdw(op)               \
+   fd_w = 0;                     \
+   __asm__ __volatile__(         \
+      op"   $f0, %2"   "\n\t"    \
+      "mfc1 %1,  $f0"  "\n\t"    \
+      "cfc1 %0,  $31"  "\n\t"    \
+      : "=r" (fcsr), "=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"                 \
+#define UNOPwd(op)               \
+   fd_d = 0;                     \
+   __asm__ __volatile__(         \
+      "mtc1 %2,  $f0"  "\n\t"    \
+      op"   %1,  $f0"  "\n\t"    \
+      "cfc1 %0,  $31"  "\n\t"    \
+      : "=r" (fcsr), "=f"(fd_d)  \
+      : "r"(fs_w[i])             \
+      : "$f0"                    \
    );
 
-#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"                 \
+#define UNOPwf(op)               \
+   fd_f = 0;                     \
+   __asm__ __volatile__(         \
+      "mtc1 %2,  $f0"  "\n\t"    \
+      op"   %1,  $f0"  "\n\t"    \
+      "cfc1 %0,  $31"  "\n\t"    \
+      : "=r" (fcsr), "=f"(fd_f)  \
+      : "r"(fs_w[i])             \
+      : "$f0"                    \
    );
 
-#define UNOPld(op)             \
-   fd_d = 0;                   \
-   __asm__ __volatile__(       \
-      "dmtc1 %1, $f0"  "\n\t"  \
-      op"    %0, $f0"  "\n\t"  \
-      : "=f"(fd_d)             \
-      : "r"(fs_l[i])           \
-      : "$f0"                  \
+#define UNOPld(op)               \
+   fd_d = 0;                     \
+   __asm__ __volatile__(         \
+      "dmtc1 %2, $f0"  "\n\t"    \
+      op"    %1, $f0"  "\n\t"    \
+      "cfc1  %0, $31"  "\n\t"    \
+      : "=r" (fcsr), "=f"(fd_d)  \
+      : "r"(fs_l[i])             \
+      : "$f0"                    \
    );
 
-#define UNOPdl(op)              \
-   fd_l = 0;                    \
-   __asm__ __volatile__(        \
-      op"    $f0, %1"   "\n\t"  \
-      "dmfc1 %0,  $f0"  "\n\t"  \
-      : "=r"(fd_l)              \
-      : "f"(fs_d[i])            \
-      : "$f0"                   \
+#define UNOPdl(op)               \
+   fd_l = 0;                     \
+   __asm__ __volatile__(         \
+      op"    $f0, %2"   "\n\t"   \
+      "dmfc1 %1,  $f0"  "\n\t"   \
+      "cfc1  %0,  $31"  "\n\t"   \
+      : "=r" (fcsr), "=r"(fd_l)  \
+      : "f"(fs_d[i])             \
+      : "$f0"                    \
    );
 
-#define UNOPls(op)             \
-   fd_f = 0;                   \
-   __asm__ __volatile__(       \
-      "dmtc1 %1, $f0"  "\n\t"  \
-      op"    %0, $f0"  "\n\t"  \
-      : "=f"(fd_f)             \
-      : "r"(fs_l[i])           \
-      : "$f0"                  \
+#define UNOPls(op)               \
+   fd_f = 0;                     \
+   __asm__ __volatile__(         \
+      "dmtc1 %2, $f0"  "\n\t"    \
+      op"    %1, $f0"  "\n\t"    \
+      "cfc1  %0, $31"  "\n\t"    \
+      : "=r" (fcsr), "=f"(fd_f)  \
+      : "r"(fs_l[i])             \
+      : "$f0"                    \
    );
 
-#define UNOPsl(op)              \
-   fd_l = 0;                    \
-   __asm__ __volatile__(        \
-      op"    $f0, %1"   "\n\t"  \
-      "dmfc1 %0,  $f0"  "\n\t"  \
-      : "=r"(fd_l)              \
-      : "f"(fs_f[i])            \
-      : "$f0"                   \
+#define UNOPsl(op)               \
+   fd_l = 0;                     \
+   __asm__ __volatile__(         \
+      op"    $f0, %2"   "\n\t"   \
+      "dmfc1 %1,  $f0"  "\n\t"   \
+      "cfc1  %0,  $31"  "\n\t"   \
+      : "=r" (fcsr), "=r"(fd_l)  \
+      : "f"(fs_f[i])             \
+      : "$f0"                    \
    );
 
 #define BINOPf(op)                    \
    fd_f = 0;                          \
    __asm__ __volatile__(              \
-      op" %0, %1, %2"  "\n\t"         \
-      : "=f" (fd_f)                   \
+      op"    %1, %2, %3"  "\n\t"      \
+      "cfc1  %0, $31"     "\n\t"      \
+      : "=r" (fcsr), "=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)                    \
+      op" %1, %2, %3"  "\n\t"         \
+      "cfc1  %0, $31"     "\n\t"      \
+      : "=r" (fcsr), "=f"(fd_d)       \
       : "f" (fs_d[i]), "f" (ft_d[i])  \
    );
 
 #define TRIOPf(op)                                    \
    fd_f = 0;                                          \
    __asm__ __volatile__(                              \
-      op" %0, %1, %2, %3"  "\n\t"                     \
-      : "=f" (fd_f)                                   \
+      op"    %1, %2, %3, %4"  "\n\t"                  \
+      "cfc1  %0, $31"         "\n\t"                  \
+      : "=r" (fcsr), "=f" (fd_f)                      \
       : "f" (fr_f[i]), "f" (fs_f[i]) , "f" (ft_f[i])  \
    );
 
 #define TRIOPd(op)                                    \
    fd_d = 0;                                          \
    __asm__ __volatile__(                              \
-      op" %0, %1, %2, %3"  "\n\t"                     \
-      : "=f"(fd_d)                                    \
+      op"    %1, %2, %3, %4"  "\n\t"                  \
+      "cfc1  %0, $31"         "\n\t"                  \
+      : "=r" (fcsr), "=f"(fd_d)                       \
       : "f" (fr_d[i]), "f" (fs_d[i]) , "f" (ft_d[i])  \
    );
 
diff --git a/none/tests/mips64/round.c b/none/tests/mips64/round.c
index fc4e4f1..5fb0fb4 100644
--- a/none/tests/mips64/round.c
+++ b/none/tests/mips64/round.c
@@ -6,71 +6,88 @@
    int fd_w = 0;
    long long int fd_l = 0;
    int i;
+   int fcsr = 0;
    for (i = 0; i < MAX_ARR; i++) {
       switch(op) {
          case CEILWS:
               UNOPfw("ceil.w.s");
               printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case CEILWD:
               UNOPdw("ceil.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case FLOORWS:
               UNOPfw("floor.w.s");
               printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case FLOORWD:
               UNOPdw("floor.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case ROUNDWS:
               UNOPfw("round.w.s");
               printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case ROUNDWD:
               UNOPdw("round.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case TRUNCWS:
               UNOPfw("trunc.w.s");
               printf("%s %d %f\n", flt_dir_op_names[op], fd_w, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case TRUNCWD:
               UNOPdw("trunc.w.d");
               printf("%s %d %lf\n", flt_dir_op_names[op], fd_w, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case CEILLS:
               UNOPsl("ceil.l.s");
               printf("%s %lld %f\n", flt_dir_op_names[op], fd_l, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case CEILLD:
               UNOPdl("ceil.l.d");
               printf("%s %lld %lf\n", flt_dir_op_names[op], fd_l, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case FLOORLS:
               UNOPsl("floor.l.s");
               printf("%s %lld %f\n", flt_dir_op_names[op], fd_l, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case FLOORLD:
               UNOPdl("floor.l.d");
               printf("%s %lld %lf\n", flt_dir_op_names[op], fd_l, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case ROUNDLS:
               UNOPsl("round.l.s");
               printf("%s %lld %f\n", flt_dir_op_names[op], fd_l, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case ROUNDLD:
               UNOPdl("round.l.d");
               printf("%s %lld %lf\n", flt_dir_op_names[op], fd_l, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case TRUNCLS:
               UNOPsl("trunc.l.s");
               printf("%s %lld %f\n", flt_dir_op_names[op], fd_l, fs_f[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
          case TRUNCLD:
               UNOPdl("trunc.l.d");
               printf("%s %lld %lf\n", flt_dir_op_names[op], fd_l, fs_d[i]);
+              printf("fcsr: 0x%x\n", fcsr);
               break;
         default:
             printf("error\n");
@@ -87,6 +104,7 @@
    int fd_w = 0;
    long long int fd_l = 0;
    int i;
+   int fcsr = 0;
    round_mode_t rm;
    for (rm = TO_NEAREST; rm <= TO_MINUS_INFINITY; rm ++) {
       set_rounding_mode(rm);
@@ -97,42 +115,52 @@
             case CVTDS:
                  UNOPfd("cvt.d.s");
                  printf("%s %lf %lf\n", flt_round_op_names[op1], fd_d, fs_f[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTDW:
                  UNOPwd("cvt.d.w");
                  printf("%s %lf %d\n", flt_round_op_names[op1], fd_d, fs_w[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTSD:
                  UNOPdf("cvt.s.d");
                  printf("%s %f %lf\n", flt_round_op_names[op1], fd_f, fs_d[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTSW:
                  UNOPwf("cvt.s.w");
                  printf("%s %f %d\n", flt_round_op_names[op1], fd_f, fs_w[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTWS:
                  UNOPfw("cvt.w.s");
                  printf("%s %d %f\n", flt_round_op_names[op1], fd_w, fs_f[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTWD:
                  UNOPdw("cvt.w.d");
                  printf("%s %d %lf\n", flt_round_op_names[op1], fd_w, fs_d[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTDL:
                  UNOPld("cvt.d.l");
                  printf("%s %lf %ld\n", flt_round_op_names[op1], fd_d, fs_l[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTLS:
                  UNOPsl("cvt.l.s");
                  printf("%s %lld %f\n", flt_round_op_names[op1], fd_l, fs_f[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTLD:
                  UNOPdl("cvt.l.d");
                  printf("%s %lld %lf\n", flt_round_op_names[op1], fd_l, fs_d[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             case CVTSL:
                  UNOPls("cvt.s.l");
                  printf("%s %f %ld\n", flt_round_op_names[op1], fd_f, fs_l[i]);
+                 printf("fcsr: 0x%x\n", fcsr);
                  break;
             default:
                  printf("error\n");
diff --git a/none/tests/mips64/round.stdout.exp b/none/tests/mips64/round.stdout.exp
index 3ff1ad2..4eaea02 100644
--- a/none/tests/mips64/round.stdout.exp
+++ b/none/tests/mips64/round.stdout.exp
@@ -1,1362 +1,2682 @@
 -------------------------- test FPU Conversion Operations Using a Directed Rounding Mode --------------------------
 ceil.w.s 0 0.000000
+fcsr: 0x0
 ceil.w.s 457 456.248962
+fcsr: 0x1004
 ceil.w.s 3 3.000000
+fcsr: 0x4
 ceil.w.s -1 -1.000000
+fcsr: 0x4
 ceil.w.s 1385 1384.599976
+fcsr: 0x1004
 ceil.w.s -7 -7.294568
+fcsr: 0x1004
 ceil.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 ceil.w.s -5786 -5786.470215
+fcsr: 0x1004
 ceil.w.s 1752 1752.000000
+fcsr: 0x4
 ceil.w.s 1 0.002457
+fcsr: 0x1004
 ceil.w.s 1 0.123400
+fcsr: 0x1004
 ceil.w.s -248562 -248562.765625
+fcsr: 0x1004
 ceil.w.s -45786 -45786.476562
+fcsr: 0x1004
 ceil.w.s 457 456.248962
+fcsr: 0x1004
 ceil.w.s 35 34.000462
+fcsr: 0x1004
 ceil.w.s 45787 45786.476562
+fcsr: 0x1004
 ceil.w.s 1752065 1752065.000000
+fcsr: 0x4
 ceil.w.s 107 107.000000
+fcsr: 0x4
 ceil.w.s -45667 -45667.238281
+fcsr: 0x1004
 ceil.w.s -7 -7.294568
+fcsr: 0x1004
 ceil.w.s -347856 -347856.468750
+fcsr: 0x1004
 ceil.w.s 356048 356047.562500
+fcsr: 0x1004
 ceil.w.s -1 -1.000000
+fcsr: 0x4
 ceil.w.s 24 23.040001
+fcsr: 0x1004
 ceil.w.d 0 0.000000
+fcsr: 0x4
 ceil.w.d 457 456.248956
+fcsr: 0x1004
 ceil.w.d 3 3.000000
+fcsr: 0x4
 ceil.w.d -1 -1.000000
+fcsr: 0x4
 ceil.w.d 1385 1384.600000
+fcsr: 0x1004
 ceil.w.d -7 -7.294568
+fcsr: 0x1004
 ceil.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 ceil.w.d -5786 -5786.470000
+fcsr: 0x1004
 ceil.w.d 1752 1752.000000
+fcsr: 0x4
 ceil.w.d 1 0.002458
+fcsr: 0x1004
 ceil.w.d 1 0.000000
+fcsr: 0x1004
 ceil.w.d -248562 -248562.760000
+fcsr: 0x1004
 ceil.w.d -45786 -45786.476000
+fcsr: 0x1004
 ceil.w.d 457 456.248956
+fcsr: 0x1004
 ceil.w.d 35 34.000460
+fcsr: 0x1004
 ceil.w.d 45787 45786.476000
+fcsr: 0x1004
 ceil.w.d 1752065 1752065.000000
+fcsr: 0x4
 ceil.w.d 107 107.000000
+fcsr: 0x4
 ceil.w.d -45667 -45667.240000
+fcsr: 0x1004
 ceil.w.d -7 -7.294568
+fcsr: 0x1004
 ceil.w.d -347856 -347856.475000
+fcsr: 0x1004
 ceil.w.d 356048 356047.560000
+fcsr: 0x1004
 ceil.w.d -1 -1.000000
+fcsr: 0x4
 ceil.w.d 24 23.040000
+fcsr: 0x1004
 floor.w.s 0 0.000000
+fcsr: 0x4
 floor.w.s 456 456.248962
+fcsr: 0x1004
 floor.w.s 3 3.000000
+fcsr: 0x4
 floor.w.s -1 -1.000000
+fcsr: 0x4
 floor.w.s 1384 1384.599976
+fcsr: 0x1004
 floor.w.s -8 -7.294568
+fcsr: 0x1004
 floor.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 floor.w.s -5787 -5786.470215
+fcsr: 0x1004
 floor.w.s 1752 1752.000000
+fcsr: 0x4
 floor.w.s 0 0.002457
+fcsr: 0x1004
 floor.w.s 0 0.123400
+fcsr: 0x1004
 floor.w.s -248563 -248562.765625
+fcsr: 0x1004
 floor.w.s -45787 -45786.476562
+fcsr: 0x1004
 floor.w.s 456 456.248962
+fcsr: 0x1004
 floor.w.s 34 34.000462
+fcsr: 0x1004
 floor.w.s 45786 45786.476562
+fcsr: 0x1004
 floor.w.s 1752065 1752065.000000
+fcsr: 0x4
 floor.w.s 107 107.000000
+fcsr: 0x4
 floor.w.s -45668 -45667.238281
+fcsr: 0x1004
 floor.w.s -8 -7.294568
+fcsr: 0x1004
 floor.w.s -347857 -347856.468750
+fcsr: 0x1004
 floor.w.s 356047 356047.562500
+fcsr: 0x1004
 floor.w.s -1 -1.000000
+fcsr: 0x4
 floor.w.s 23 23.040001
+fcsr: 0x1004
 floor.w.d 0 0.000000
+fcsr: 0x4
 floor.w.d 456 456.248956
+fcsr: 0x1004
 floor.w.d 3 3.000000
+fcsr: 0x4
 floor.w.d -1 -1.000000
+fcsr: 0x4
 floor.w.d 1384 1384.600000
+fcsr: 0x1004
 floor.w.d -8 -7.294568
+fcsr: 0x1004
 floor.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 floor.w.d -5787 -5786.470000
+fcsr: 0x1004
 floor.w.d 1752 1752.000000
+fcsr: 0x4
 floor.w.d 0 0.002458
+fcsr: 0x1004
 floor.w.d 0 0.000000
+fcsr: 0x1004
 floor.w.d -248563 -248562.760000
+fcsr: 0x1004
 floor.w.d -45787 -45786.476000
+fcsr: 0x1004
 floor.w.d 456 456.248956
+fcsr: 0x1004
 floor.w.d 34 34.000460
+fcsr: 0x1004
 floor.w.d 45786 45786.476000
+fcsr: 0x1004
 floor.w.d 1752065 1752065.000000
+fcsr: 0x4
 floor.w.d 107 107.000000
+fcsr: 0x4
 floor.w.d -45668 -45667.240000
+fcsr: 0x1004
 floor.w.d -8 -7.294568
+fcsr: 0x1004
 floor.w.d -347857 -347856.475000
+fcsr: 0x1004
 floor.w.d 356047 356047.560000
+fcsr: 0x1004
 floor.w.d -1 -1.000000
+fcsr: 0x4
 floor.w.d 23 23.040000
+fcsr: 0x1004
 round.w.s 0 0.000000
+fcsr: 0x4
 round.w.s 456 456.248962
+fcsr: 0x1004
 round.w.s 3 3.000000
+fcsr: 0x4
 round.w.s -1 -1.000000
+fcsr: 0x4
 round.w.s 1385 1384.599976
+fcsr: 0x1004
 round.w.s -7 -7.294568
+fcsr: 0x1004
 round.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 round.w.s -5786 -5786.470215
+fcsr: 0x1004
 round.w.s 1752 1752.000000
+fcsr: 0x4
 round.w.s 0 0.002457
+fcsr: 0x1004
 round.w.s 0 0.123400
+fcsr: 0x1004
 round.w.s -248563 -248562.765625
+fcsr: 0x1004
 round.w.s -45786 -45786.476562
+fcsr: 0x1004
 round.w.s 456 456.248962
+fcsr: 0x1004
 round.w.s 34 34.000462
+fcsr: 0x1004
 round.w.s 45786 45786.476562
+fcsr: 0x1004
 round.w.s 1752065 1752065.000000
+fcsr: 0x4
 round.w.s 107 107.000000
+fcsr: 0x4
 round.w.s -45667 -45667.238281
+fcsr: 0x1004
 round.w.s -7 -7.294568
+fcsr: 0x1004
 round.w.s -347856 -347856.468750
+fcsr: 0x1004
 round.w.s 356048 356047.562500
+fcsr: 0x1004
 round.w.s -1 -1.000000
+fcsr: 0x4
 round.w.s 23 23.040001
+fcsr: 0x1004
 round.w.d 0 0.000000
+fcsr: 0x4
 round.w.d 456 456.248956
+fcsr: 0x1004
 round.w.d 3 3.000000
+fcsr: 0x4
 round.w.d -1 -1.000000
+fcsr: 0x4
 round.w.d 1385 1384.600000
+fcsr: 0x1004
 round.w.d -7 -7.294568
+fcsr: 0x1004
 round.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 round.w.d -5786 -5786.470000
+fcsr: 0x1004
 round.w.d 1752 1752.000000
+fcsr: 0x4
 round.w.d 0 0.002458
+fcsr: 0x1004
 round.w.d 0 0.000000
+fcsr: 0x1004
 round.w.d -248563 -248562.760000
+fcsr: 0x1004
 round.w.d -45786 -45786.476000
+fcsr: 0x1004
 round.w.d 456 456.248956
+fcsr: 0x1004
 round.w.d 34 34.000460
+fcsr: 0x1004
 round.w.d 45786 45786.476000
+fcsr: 0x1004
 round.w.d 1752065 1752065.000000
+fcsr: 0x4
 round.w.d 107 107.000000
+fcsr: 0x4
 round.w.d -45667 -45667.240000
+fcsr: 0x1004
 round.w.d -7 -7.294568
+fcsr: 0x1004
 round.w.d -347856 -347856.475000
+fcsr: 0x1004
 round.w.d 356048 356047.560000
+fcsr: 0x1004
 round.w.d -1 -1.000000
+fcsr: 0x4
 round.w.d 23 23.040000
+fcsr: 0x1004
 trunc.w.s 0 0.000000
+fcsr: 0x4
 trunc.w.s 456 456.248962
+fcsr: 0x1004
 trunc.w.s 3 3.000000
+fcsr: 0x4
 trunc.w.s -1 -1.000000
+fcsr: 0x4
 trunc.w.s 1384 1384.599976
+fcsr: 0x1004
 trunc.w.s -7 -7.294568
+fcsr: 0x1004
 trunc.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 trunc.w.s -5786 -5786.470215
+fcsr: 0x1004
 trunc.w.s 1752 1752.000000
+fcsr: 0x4
 trunc.w.s 0 0.002457
+fcsr: 0x1004
 trunc.w.s 0 0.123400
+fcsr: 0x1004
 trunc.w.s -248562 -248562.765625
+fcsr: 0x1004
 trunc.w.s -45786 -45786.476562
+fcsr: 0x1004
 trunc.w.s 456 456.248962
+fcsr: 0x1004
 trunc.w.s 34 34.000462
+fcsr: 0x1004
 trunc.w.s 45786 45786.476562
+fcsr: 0x1004
 trunc.w.s 1752065 1752065.000000
+fcsr: 0x4
 trunc.w.s 107 107.000000
+fcsr: 0x4
 trunc.w.s -45667 -45667.238281
+fcsr: 0x1004
 trunc.w.s -7 -7.294568
+fcsr: 0x1004
 trunc.w.s -347856 -347856.468750
+fcsr: 0x1004
 trunc.w.s 356047 356047.562500
+fcsr: 0x1004
 trunc.w.s -1 -1.000000
+fcsr: 0x4
 trunc.w.s 23 23.040001
+fcsr: 0x1004
 trunc.w.d 0 0.000000
+fcsr: 0x4
 trunc.w.d 456 456.248956
+fcsr: 0x1004
 trunc.w.d 3 3.000000
+fcsr: 0x4
 trunc.w.d -1 -1.000000
+fcsr: 0x4
 trunc.w.d 1384 1384.600000
+fcsr: 0x1004
 trunc.w.d -7 -7.294568
+fcsr: 0x1004
 trunc.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 trunc.w.d -5786 -5786.470000
+fcsr: 0x1004
 trunc.w.d 1752 1752.000000
+fcsr: 0x4
 trunc.w.d 0 0.002458
+fcsr: 0x1004
 trunc.w.d 0 0.000000
+fcsr: 0x1004
 trunc.w.d -248562 -248562.760000
+fcsr: 0x1004
 trunc.w.d -45786 -45786.476000
+fcsr: 0x1004
 trunc.w.d 456 456.248956
+fcsr: 0x1004
 trunc.w.d 34 34.000460
+fcsr: 0x1004
 trunc.w.d 45786 45786.476000
+fcsr: 0x1004
 trunc.w.d 1752065 1752065.000000
+fcsr: 0x4
 trunc.w.d 107 107.000000
+fcsr: 0x4
 trunc.w.d -45667 -45667.240000
+fcsr: 0x1004
 trunc.w.d -7 -7.294568
+fcsr: 0x1004
 trunc.w.d -347856 -347856.475000
+fcsr: 0x1004
 trunc.w.d 356047 356047.560000
+fcsr: 0x1004
 trunc.w.d -1 -1.000000
+fcsr: 0x4
 trunc.w.d 23 23.040000
+fcsr: 0x1004
 ceil.l.s 0 0.000000
+fcsr: 0x4
 ceil.l.s 457 456.248962
+fcsr: 0x1004
 ceil.l.s 3 3.000000
+fcsr: 0x4
 ceil.l.s -1 -1.000000
+fcsr: 0x4
 ceil.l.s 1385 1384.599976
+fcsr: 0x1004
 ceil.l.s -7 -7.294568
+fcsr: 0x1004
 ceil.l.s 1000000000 1000000000.000000
+fcsr: 0x4
 ceil.l.s -5786 -5786.470215
+fcsr: 0x1004
 ceil.l.s 1752 1752.000000
+fcsr: 0x4
 ceil.l.s 1 0.002457
+fcsr: 0x1004
 ceil.l.s 1 0.123400
+fcsr: 0x1004
 ceil.l.s -248562 -248562.765625
+fcsr: 0x1004
 ceil.l.s -45786 -45786.476562
+fcsr: 0x1004
 ceil.l.s 457 456.248962
+fcsr: 0x1004
 ceil.l.s 35 34.000462
+fcsr: 0x1004
 ceil.l.s 45787 45786.476562
+fcsr: 0x1004
 ceil.l.s 1752065 1752065.000000
+fcsr: 0x4
 ceil.l.s 107 107.000000
+fcsr: 0x4
 ceil.l.s -45667 -45667.238281
+fcsr: 0x1004
 ceil.l.s -7 -7.294568
+fcsr: 0x1004
 ceil.l.s -347856 -347856.468750
+fcsr: 0x1004
 ceil.l.s 356048 356047.562500
+fcsr: 0x1004
 ceil.l.s -1 -1.000000
+fcsr: 0x4
 ceil.l.s 24 23.040001
+fcsr: 0x1004
 ceil.l.d 0 0.000000
+fcsr: 0x4
 ceil.l.d 457 456.248956
+fcsr: 0x1004
 ceil.l.d 3 3.000000
+fcsr: 0x4
 ceil.l.d -1 -1.000000
+fcsr: 0x4
 ceil.l.d 1385 1384.600000
+fcsr: 0x1004
 ceil.l.d -7 -7.294568
+fcsr: 0x1004
 ceil.l.d 1000000000 1000000000.000000
+fcsr: 0x4
 ceil.l.d -5786 -5786.470000
+fcsr: 0x1004
 ceil.l.d 1752 1752.000000
+fcsr: 0x4
 ceil.l.d 1 0.002458
+fcsr: 0x1004
 ceil.l.d 1 0.000000
+fcsr: 0x1004
 ceil.l.d -248562 -248562.760000
+fcsr: 0x1004
 ceil.l.d -45786 -45786.476000
+fcsr: 0x1004
 ceil.l.d 457 456.248956
+fcsr: 0x1004
 ceil.l.d 35 34.000460
+fcsr: 0x1004
 ceil.l.d 45787 45786.476000
+fcsr: 0x1004
 ceil.l.d 1752065 1752065.000000
+fcsr: 0x4
 ceil.l.d 107 107.000000
+fcsr: 0x4
 ceil.l.d -45667 -45667.240000
+fcsr: 0x1004
 ceil.l.d -7 -7.294568
+fcsr: 0x1004
 ceil.l.d -347856 -347856.475000
+fcsr: 0x1004
 ceil.l.d 356048 356047.560000
+fcsr: 0x1004
 ceil.l.d -1 -1.000000
+fcsr: 0x4
 ceil.l.d 24 23.040000
+fcsr: 0x1004
 floor.l.s 0 0.000000
+fcsr: 0x4
 floor.l.s 456 456.248962
+fcsr: 0x1004
 floor.l.s 3 3.000000
+fcsr: 0x4
 floor.l.s -1 -1.000000
+fcsr: 0x4
 floor.l.s 1384 1384.599976
+fcsr: 0x1004
 floor.l.s -8 -7.294568
+fcsr: 0x1004
 floor.l.s 1000000000 1000000000.000000
+fcsr: 0x4
 floor.l.s -5787 -5786.470215
+fcsr: 0x1004
 floor.l.s 1752 1752.000000
+fcsr: 0x4
 floor.l.s 0 0.002457
+fcsr: 0x1004
 floor.l.s 0 0.123400
+fcsr: 0x1004
 floor.l.s -248563 -248562.765625
+fcsr: 0x1004
 floor.l.s -45787 -45786.476562
+fcsr: 0x1004
 floor.l.s 456 456.248962
+fcsr: 0x1004
 floor.l.s 34 34.000462
+fcsr: 0x1004
 floor.l.s 45786 45786.476562
+fcsr: 0x1004
 floor.l.s 1752065 1752065.000000
+fcsr: 0x4
 floor.l.s 107 107.000000
+fcsr: 0x4
 floor.l.s -45668 -45667.238281
+fcsr: 0x1004
 floor.l.s -8 -7.294568
+fcsr: 0x1004
 floor.l.s -347857 -347856.468750
+fcsr: 0x1004
 floor.l.s 356047 356047.562500
+fcsr: 0x1004
 floor.l.s -1 -1.000000
+fcsr: 0x4
 floor.l.s 23 23.040001
+fcsr: 0x1004
 floor.l.d 0 0.000000
+fcsr: 0x4
 floor.l.d 456 456.248956
+fcsr: 0x1004
 floor.l.d 3 3.000000
+fcsr: 0x4
 floor.l.d -1 -1.000000
+fcsr: 0x4
 floor.l.d 1384 1384.600000
+fcsr: 0x1004
 floor.l.d -8 -7.294568
+fcsr: 0x1004
 floor.l.d 1000000000 1000000000.000000
+fcsr: 0x4
 floor.l.d -5787 -5786.470000
+fcsr: 0x1004
 floor.l.d 1752 1752.000000
+fcsr: 0x4
 floor.l.d 0 0.002458
+fcsr: 0x1004
 floor.l.d 0 0.000000
+fcsr: 0x1004
 floor.l.d -248563 -248562.760000
+fcsr: 0x1004
 floor.l.d -45787 -45786.476000
+fcsr: 0x1004
 floor.l.d 456 456.248956
+fcsr: 0x1004
 floor.l.d 34 34.000460
+fcsr: 0x1004
 floor.l.d 45786 45786.476000
+fcsr: 0x1004
 floor.l.d 1752065 1752065.000000
+fcsr: 0x4
 floor.l.d 107 107.000000
+fcsr: 0x4
 floor.l.d -45668 -45667.240000
+fcsr: 0x1004
 floor.l.d -8 -7.294568
+fcsr: 0x1004
 floor.l.d -347857 -347856.475000
+fcsr: 0x1004
 floor.l.d 356047 356047.560000
+fcsr: 0x1004
 floor.l.d -1 -1.000000
+fcsr: 0x4
 floor.l.d 23 23.040000
+fcsr: 0x1004
 round.l.s 0 0.000000
+fcsr: 0x4
 round.l.s 456 456.248962
+fcsr: 0x1004
 round.l.s 3 3.000000
+fcsr: 0x4
 round.l.s -1 -1.000000
+fcsr: 0x4
 round.l.s 1385 1384.599976
+fcsr: 0x1004
 round.l.s -7 -7.294568
+fcsr: 0x1004
 round.l.s 1000000000 1000000000.000000
+fcsr: 0x4
 round.l.s -5786 -5786.470215
+fcsr: 0x1004
 round.l.s 1752 1752.000000
+fcsr: 0x4
 round.l.s 0 0.002457
+fcsr: 0x1004
 round.l.s 0 0.123400
+fcsr: 0x1004
 round.l.s -248563 -248562.765625
+fcsr: 0x1004
 round.l.s -45786 -45786.476562
+fcsr: 0x1004
 round.l.s 456 456.248962
+fcsr: 0x1004
 round.l.s 34 34.000462
+fcsr: 0x1004
 round.l.s 45786 45786.476562
+fcsr: 0x1004
 round.l.s 1752065 1752065.000000
+fcsr: 0x4
 round.l.s 107 107.000000
+fcsr: 0x4
 round.l.s -45667 -45667.238281
+fcsr: 0x1004
 round.l.s -7 -7.294568
+fcsr: 0x1004
 round.l.s -347856 -347856.468750
+fcsr: 0x1004
 round.l.s 356048 356047.562500
+fcsr: 0x1004
 round.l.s -1 -1.000000
+fcsr: 0x4
 round.l.s 23 23.040001
+fcsr: 0x1004
 round.l.d 0 0.000000
+fcsr: 0x4
 round.l.d 456 456.248956
+fcsr: 0x1004
 round.l.d 3 3.000000
+fcsr: 0x4
 round.l.d -1 -1.000000
+fcsr: 0x4
 round.l.d 1385 1384.600000
+fcsr: 0x1004
 round.l.d -7 -7.294568
+fcsr: 0x1004
 round.l.d 1000000000 1000000000.000000
+fcsr: 0x4
 round.l.d -5786 -5786.470000
+fcsr: 0x1004
 round.l.d 1752 1752.000000
+fcsr: 0x4
 round.l.d 0 0.002458
+fcsr: 0x1004
 round.l.d 0 0.000000
+fcsr: 0x1004
 round.l.d -248563 -248562.760000
+fcsr: 0x1004
 round.l.d -45786 -45786.476000
+fcsr: 0x1004
 round.l.d 456 456.248956
+fcsr: 0x1004
 round.l.d 34 34.000460
+fcsr: 0x1004
 round.l.d 45786 45786.476000
+fcsr: 0x1004
 round.l.d 1752065 1752065.000000
+fcsr: 0x4
 round.l.d 107 107.000000
+fcsr: 0x4
 round.l.d -45667 -45667.240000
+fcsr: 0x1004
 round.l.d -7 -7.294568
+fcsr: 0x1004
 round.l.d -347856 -347856.475000
+fcsr: 0x1004
 round.l.d 356048 356047.560000
+fcsr: 0x1004
 round.l.d -1 -1.000000
+fcsr: 0x4
 round.l.d 23 23.040000
+fcsr: 0x1004
 trunc.l.s 0 0.000000
+fcsr: 0x4
 trunc.l.s 456 456.248962
+fcsr: 0x1004
 trunc.l.s 3 3.000000
+fcsr: 0x4
 trunc.l.s -1 -1.000000
+fcsr: 0x4
 trunc.l.s 1384 1384.599976
+fcsr: 0x1004
 trunc.l.s -7 -7.294568
+fcsr: 0x1004
 trunc.l.s 1000000000 1000000000.000000
+fcsr: 0x4
 trunc.l.s -5786 -5786.470215
+fcsr: 0x1004
 trunc.l.s 1752 1752.000000
+fcsr: 0x4
 trunc.l.s 0 0.002457
+fcsr: 0x1004
 trunc.l.s 0 0.123400
+fcsr: 0x1004
 trunc.l.s -248562 -248562.765625
+fcsr: 0x1004
 trunc.l.s -45786 -45786.476562
+fcsr: 0x1004
 trunc.l.s 456 456.248962
+fcsr: 0x1004
 trunc.l.s 34 34.000462
+fcsr: 0x1004
 trunc.l.s 45786 45786.476562
+fcsr: 0x1004
 trunc.l.s 1752065 1752065.000000
+fcsr: 0x4
 trunc.l.s 107 107.000000
+fcsr: 0x4
 trunc.l.s -45667 -45667.238281
+fcsr: 0x1004
 trunc.l.s -7 -7.294568
+fcsr: 0x1004
 trunc.l.s -347856 -347856.468750
+fcsr: 0x1004
 trunc.l.s 356047 356047.562500
+fcsr: 0x1004
 trunc.l.s -1 -1.000000
+fcsr: 0x4
 trunc.l.s 23 23.040001
+fcsr: 0x1004
 -------------------------- test FPU Conversion Operations Using the FCSR Rounding Mode --------------------------
 roundig mode: near
 cvt.d.s 0.000000 0.000000
+fcsr: 0x4
 cvt.d.s 456.248962 456.248962
+fcsr: 0x4
 cvt.d.s 3.000000 3.000000
+fcsr: 0x4
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x4
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x4
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x4
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x4
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x4
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x4
 cvt.d.s 0.002457 0.002457
+fcsr: 0x4
 cvt.d.s 0.123400 0.123400
+fcsr: 0x4
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x4
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x4
 cvt.d.s 456.248962 456.248962
+fcsr: 0x4
 cvt.d.s 34.000462 34.000462
+fcsr: 0x4
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x4
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x4
 cvt.d.s 107.000000 107.000000
+fcsr: 0x4
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x4
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x4
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x4
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x4
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x4
 cvt.d.s 23.040001 23.040001
+fcsr: 0x4
 roundig mode: zero
 cvt.d.s 0.000000 0.000000
+fcsr: 0x5
 cvt.d.s 456.248962 456.248962
+fcsr: 0x5
 cvt.d.s 3.000000 3.000000
+fcsr: 0x5
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x5
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x5
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x5
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x5
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x5
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x5
 cvt.d.s 0.002457 0.002457
+fcsr: 0x5
 cvt.d.s 0.123400 0.123400
+fcsr: 0x5
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x5
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x5
 cvt.d.s 456.248962 456.248962
+fcsr: 0x5
 cvt.d.s 34.000462 34.000462
+fcsr: 0x5
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x5
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x5
 cvt.d.s 107.000000 107.000000
+fcsr: 0x5
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x5
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x5
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x5
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x5
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x5
 cvt.d.s 23.040001 23.040001
+fcsr: 0x5
 roundig mode: +inf
 cvt.d.s 0.000000 0.000000
+fcsr: 0x6
 cvt.d.s 456.248962 456.248962
+fcsr: 0x6
 cvt.d.s 3.000000 3.000000
+fcsr: 0x6
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x6
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x6
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x6
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x6
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x6
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x6
 cvt.d.s 0.002457 0.002457
+fcsr: 0x6
 cvt.d.s 0.123400 0.123400
+fcsr: 0x6
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x6
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x6
 cvt.d.s 456.248962 456.248962
+fcsr: 0x6
 cvt.d.s 34.000462 34.000462
+fcsr: 0x6
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x6
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x6
 cvt.d.s 107.000000 107.000000
+fcsr: 0x6
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x6
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x6
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x6
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x6
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x6
 cvt.d.s 23.040001 23.040001
+fcsr: 0x6
 roundig mode: -inf
 cvt.d.s 0.000000 0.000000
+fcsr: 0x7
 cvt.d.s 456.248962 456.248962
+fcsr: 0x7
 cvt.d.s 3.000000 3.000000
+fcsr: 0x7
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x7
 cvt.d.s 1384.599976 1384.599976
+fcsr: 0x7
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x7
 cvt.d.s 1000000000.000000 1000000000.000000
+fcsr: 0x7
 cvt.d.s -5786.470215 -5786.470215
+fcsr: 0x7
 cvt.d.s 1752.000000 1752.000000
+fcsr: 0x7
 cvt.d.s 0.002457 0.002457
+fcsr: 0x7
 cvt.d.s 0.123400 0.123400
+fcsr: 0x7
 cvt.d.s -248562.765625 -248562.765625
+fcsr: 0x7
 cvt.d.s -45786.476562 -45786.476562
+fcsr: 0x7
 cvt.d.s 456.248962 456.248962
+fcsr: 0x7
 cvt.d.s 34.000462 34.000462
+fcsr: 0x7
 cvt.d.s 45786.476562 45786.476562
+fcsr: 0x7
 cvt.d.s 1752065.000000 1752065.000000
+fcsr: 0x7
 cvt.d.s 107.000000 107.000000
+fcsr: 0x7
 cvt.d.s -45667.238281 -45667.238281
+fcsr: 0x7
 cvt.d.s -7.294568 -7.294568
+fcsr: 0x7
 cvt.d.s -347856.468750 -347856.468750
+fcsr: 0x7
 cvt.d.s 356047.562500 356047.562500
+fcsr: 0x7
 cvt.d.s -1.000000 -1.000000
+fcsr: 0x7
 cvt.d.s 23.040001 23.040001
+fcsr: 0x7
 roundig mode: near
 cvt.d.w 0.000000 0
+fcsr: 0x4
 cvt.d.w 456.000000 456
+fcsr: 0x4
 cvt.d.w 3.000000 3
+fcsr: 0x4
 cvt.d.w -1.000000 -1
+fcsr: 0x4
 cvt.d.w -1.000000 -1
+fcsr: 0x4
 cvt.d.w 356.000000 356
+fcsr: 0x4
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x4
 cvt.d.w -5786.000000 -5786
+fcsr: 0x4
 cvt.d.w 1752.000000 1752
+fcsr: 0x4
 cvt.d.w 24575.000000 24575
+fcsr: 0x4
 cvt.d.w 10.000000 10
+fcsr: 0x4
 cvt.d.w -248562.000000 -248562
+fcsr: 0x4
 cvt.d.w -45786.000000 -45786
+fcsr: 0x4
 cvt.d.w 456.000000 456
+fcsr: 0x4
 cvt.d.w 34.000000 34
+fcsr: 0x4
 cvt.d.w 45786.000000 45786
+fcsr: 0x4
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x4
 cvt.d.w 107.000000 107
+fcsr: 0x4
 cvt.d.w -45667.000000 -45667
+fcsr: 0x4
 cvt.d.w -7.000000 -7
+fcsr: 0x4
 cvt.d.w -347856.000000 -347856
+fcsr: 0x4
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x4
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x4
 cvt.d.w 23.000000 23
+fcsr: 0x4
 roundig mode: zero
 cvt.d.w 0.000000 0
+fcsr: 0x5
 cvt.d.w 456.000000 456
+fcsr: 0x5
 cvt.d.w 3.000000 3
+fcsr: 0x5
 cvt.d.w -1.000000 -1
+fcsr: 0x5
 cvt.d.w -1.000000 -1
+fcsr: 0x5
 cvt.d.w 356.000000 356
+fcsr: 0x5
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x5
 cvt.d.w -5786.000000 -5786
+fcsr: 0x5
 cvt.d.w 1752.000000 1752
+fcsr: 0x5
 cvt.d.w 24575.000000 24575
+fcsr: 0x5
 cvt.d.w 10.000000 10
+fcsr: 0x5
 cvt.d.w -248562.000000 -248562
+fcsr: 0x5
 cvt.d.w -45786.000000 -45786
+fcsr: 0x5
 cvt.d.w 456.000000 456
+fcsr: 0x5
 cvt.d.w 34.000000 34
+fcsr: 0x5
 cvt.d.w 45786.000000 45786
+fcsr: 0x5
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x5
 cvt.d.w 107.000000 107
+fcsr: 0x5
 cvt.d.w -45667.000000 -45667
+fcsr: 0x5
 cvt.d.w -7.000000 -7
+fcsr: 0x5
 cvt.d.w -347856.000000 -347856
+fcsr: 0x5
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x5
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x5
 cvt.d.w 23.000000 23
+fcsr: 0x5
 roundig mode: +inf
 cvt.d.w 0.000000 0
+fcsr: 0x6
 cvt.d.w 456.000000 456
+fcsr: 0x6
 cvt.d.w 3.000000 3
+fcsr: 0x6
 cvt.d.w -1.000000 -1
+fcsr: 0x6
 cvt.d.w -1.000000 -1
+fcsr: 0x6
 cvt.d.w 356.000000 356
+fcsr: 0x6
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x6
 cvt.d.w -5786.000000 -5786
+fcsr: 0x6
 cvt.d.w 1752.000000 1752
+fcsr: 0x6
 cvt.d.w 24575.000000 24575
+fcsr: 0x6
 cvt.d.w 10.000000 10
+fcsr: 0x6
 cvt.d.w -248562.000000 -248562
+fcsr: 0x6
 cvt.d.w -45786.000000 -45786
+fcsr: 0x6
 cvt.d.w 456.000000 456
+fcsr: 0x6
 cvt.d.w 34.000000 34
+fcsr: 0x6
 cvt.d.w 45786.000000 45786
+fcsr: 0x6
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x6
 cvt.d.w 107.000000 107
+fcsr: 0x6
 cvt.d.w -45667.000000 -45667
+fcsr: 0x6
 cvt.d.w -7.000000 -7
+fcsr: 0x6
 cvt.d.w -347856.000000 -347856
+fcsr: 0x6
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x6
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x6
 cvt.d.w 23.000000 23
+fcsr: 0x6
 roundig mode: -inf
 cvt.d.w 0.000000 0
+fcsr: 0x7
 cvt.d.w 456.000000 456
+fcsr: 0x7
 cvt.d.w 3.000000 3
+fcsr: 0x7
 cvt.d.w -1.000000 -1
+fcsr: 0x7
 cvt.d.w -1.000000 -1
+fcsr: 0x7
 cvt.d.w 356.000000 356
+fcsr: 0x7
 cvt.d.w 1000000000.000000 1000000000
+fcsr: 0x7
 cvt.d.w -5786.000000 -5786
+fcsr: 0x7
 cvt.d.w 1752.000000 1752
+fcsr: 0x7
 cvt.d.w 24575.000000 24575
+fcsr: 0x7
 cvt.d.w 10.000000 10
+fcsr: 0x7
 cvt.d.w -248562.000000 -248562
+fcsr: 0x7
 cvt.d.w -45786.000000 -45786
+fcsr: 0x7
 cvt.d.w 456.000000 456
+fcsr: 0x7
 cvt.d.w 34.000000 34
+fcsr: 0x7
 cvt.d.w 45786.000000 45786
+fcsr: 0x7
 cvt.d.w 1752065.000000 1752065
+fcsr: 0x7
 cvt.d.w 107.000000 107
+fcsr: 0x7
 cvt.d.w -45667.000000 -45667
+fcsr: 0x7
 cvt.d.w -7.000000 -7
+fcsr: 0x7
 cvt.d.w -347856.000000 -347856
+fcsr: 0x7
 cvt.d.w -2147483648.000000 -2147483648
+fcsr: 0x7
 cvt.d.w 268435455.000000 268435455
+fcsr: 0x7
 cvt.d.w 23.000000 23
+fcsr: 0x7
 roundig mode: near
 cvt.s.d 0.000000 0.000000
+fcsr: 0x4
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1004
 cvt.s.d 3.000000 3.000000
+fcsr: 0x4
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x4
 cvt.s.d 1384.599976 1384.600000
+fcsr: 0x1004
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1004
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x4
 cvt.s.d -5786.470215 -5786.470000
+fcsr: 0x1004
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x4
 cvt.s.d 0.002457 0.002458
+fcsr: 0x1004
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1004
 cvt.s.d -248562.765625 -248562.760000
+fcsr: 0x1004
 cvt.s.d -45786.476562 -45786.476000
+fcsr: 0x1004
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1004
 cvt.s.d 34.000462 34.000460
+fcsr: 0x1004
 cvt.s.d 45786.476562 45786.476000
+fcsr: 0x1004
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x4
 cvt.s.d 107.000000 107.000000
+fcsr: 0x4
 cvt.s.d -45667.238281 -45667.240000
+fcsr: 0x1004
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1004
 cvt.s.d -347856.468750 -347856.475000
+fcsr: 0x1004
 cvt.s.d 356047.562500 356047.560000
+fcsr: 0x1004
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x4
 cvt.s.d 23.040001 23.040000
+fcsr: 0x1004
 roundig mode: zero
 cvt.s.d 0.000000 0.000000
+fcsr: 0x5
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1005
 cvt.s.d 3.000000 3.000000
+fcsr: 0x5
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x5
 cvt.s.d 1384.599976 1384.600000
+fcsr: 0x1005
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1005
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x5
 cvt.s.d -5786.469727 -5786.470000
+fcsr: 0x1005
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x5
 cvt.s.d 0.002457 0.002458
+fcsr: 0x1005
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1005
 cvt.s.d -248562.750000 -248562.760000
+fcsr: 0x1005
 cvt.s.d -45786.472656 -45786.476000
+fcsr: 0x1005
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1005
 cvt.s.d 34.000458 34.000460
+fcsr: 0x1005
 cvt.s.d 45786.472656 45786.476000
+fcsr: 0x1005
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x5
 cvt.s.d 107.000000 107.000000
+fcsr: 0x5
 cvt.s.d -45667.238281 -45667.240000
+fcsr: 0x1005
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1005
 cvt.s.d -347856.468750 -347856.475000
+fcsr: 0x1005
 cvt.s.d 356047.531250 356047.560000
+fcsr: 0x1005
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x5
 cvt.s.d 23.039999 23.040000
+fcsr: 0x1005
 roundig mode: +inf
 cvt.s.d 0.000000 0.000000
+fcsr: 0x6
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1006
 cvt.s.d 3.000000 3.000000
+fcsr: 0x6
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x6
 cvt.s.d 1384.600098 1384.600000
+fcsr: 0x1006
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1006
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x6
 cvt.s.d -5786.469727 -5786.470000
+fcsr: 0x1006
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x6
 cvt.s.d 0.002458 0.002458
+fcsr: 0x1006
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1006
 cvt.s.d -248562.750000 -248562.760000
+fcsr: 0x1006
 cvt.s.d -45786.472656 -45786.476000
+fcsr: 0x1006
 cvt.s.d 456.248962 456.248956
+fcsr: 0x1006
 cvt.s.d 34.000462 34.000460
+fcsr: 0x1006
 cvt.s.d 45786.476562 45786.476000
+fcsr: 0x1006
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x6
 cvt.s.d 107.000000 107.000000
+fcsr: 0x6
 cvt.s.d -45667.238281 -45667.240000
+fcsr: 0x1006
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1006
 cvt.s.d -347856.468750 -347856.475000
+fcsr: 0x1006
 cvt.s.d 356047.562500 356047.560000
+fcsr: 0x1006
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x6
 cvt.s.d 23.040001 23.040000
+fcsr: 0x1006
 roundig mode: -inf
 cvt.s.d 0.000000 0.000000
+fcsr: 0x7
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1007
 cvt.s.d 3.000000 3.000000
+fcsr: 0x7
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x7
 cvt.s.d 1384.599976 1384.600000
+fcsr: 0x1007
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1007
 cvt.s.d 1000000000.000000 1000000000.000000
+fcsr: 0x7
 cvt.s.d -5786.470215 -5786.470000
+fcsr: 0x1007
 cvt.s.d 1752.000000 1752.000000
+fcsr: 0x7
 cvt.s.d 0.002457 0.002458
+fcsr: 0x1007
 cvt.s.d 0.000000 0.000000
+fcsr: 0x1007
 cvt.s.d -248562.765625 -248562.760000
+fcsr: 0x1007
 cvt.s.d -45786.476562 -45786.476000
+fcsr: 0x1007
 cvt.s.d 456.248932 456.248956
+fcsr: 0x1007
 cvt.s.d 34.000458 34.000460
+fcsr: 0x1007
 cvt.s.d 45786.472656 45786.476000
+fcsr: 0x1007
 cvt.s.d 1752065.000000 1752065.000000
+fcsr: 0x7
 cvt.s.d 107.000000 107.000000
+fcsr: 0x7
 cvt.s.d -45667.242188 -45667.240000
+fcsr: 0x1007
 cvt.s.d -7.294568 -7.294568
+fcsr: 0x1007
 cvt.s.d -347856.500000 -347856.475000
+fcsr: 0x1007
 cvt.s.d 356047.531250 356047.560000
+fcsr: 0x1007
 cvt.s.d -1.000000 -1.000000
+fcsr: 0x7
 cvt.s.d 23.039999 23.040000
+fcsr: 0x1007
 roundig mode: near
 cvt.s.w 0.000000 0
+fcsr: 0x4
 cvt.s.w 456.000000 456
+fcsr: 0x4
 cvt.s.w 3.000000 3
+fcsr: 0x4
 cvt.s.w -1.000000 -1
+fcsr: 0x4
 cvt.s.w -1.000000 -1
+fcsr: 0x4
 cvt.s.w 356.000000 356
+fcsr: 0x4
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x4
 cvt.s.w -5786.000000 -5786
+fcsr: 0x4
 cvt.s.w 1752.000000 1752
+fcsr: 0x4
 cvt.s.w 24575.000000 24575
+fcsr: 0x4
 cvt.s.w 10.000000 10
+fcsr: 0x4
 cvt.s.w -248562.000000 -248562
+fcsr: 0x4
 cvt.s.w -45786.000000 -45786
+fcsr: 0x4
 cvt.s.w 456.000000 456
+fcsr: 0x4
 cvt.s.w 34.000000 34
+fcsr: 0x4
 cvt.s.w 45786.000000 45786
+fcsr: 0x4
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x4
 cvt.s.w 107.000000 107
+fcsr: 0x4
 cvt.s.w -45667.000000 -45667
+fcsr: 0x4
 cvt.s.w -7.000000 -7
+fcsr: 0x4
 cvt.s.w -347856.000000 -347856
+fcsr: 0x4
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x4
 cvt.s.w 268435456.000000 268435455
+fcsr: 0x1004
 cvt.s.w 23.000000 23
+fcsr: 0x4
 roundig mode: zero
 cvt.s.w 0.000000 0
+fcsr: 0x5
 cvt.s.w 456.000000 456
+fcsr: 0x5
 cvt.s.w 3.000000 3
+fcsr: 0x5
 cvt.s.w -1.000000 -1
+fcsr: 0x5
 cvt.s.w -1.000000 -1
+fcsr: 0x5
 cvt.s.w 356.000000 356
+fcsr: 0x5
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x5
 cvt.s.w -5786.000000 -5786
+fcsr: 0x5
 cvt.s.w 1752.000000 1752
+fcsr: 0x5
 cvt.s.w 24575.000000 24575
+fcsr: 0x5
 cvt.s.w 10.000000 10
+fcsr: 0x5
 cvt.s.w -248562.000000 -248562
+fcsr: 0x5
 cvt.s.w -45786.000000 -45786
+fcsr: 0x5
 cvt.s.w 456.000000 456
+fcsr: 0x5
 cvt.s.w 34.000000 34
+fcsr: 0x5
 cvt.s.w 45786.000000 45786
+fcsr: 0x5
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x5
 cvt.s.w 107.000000 107
+fcsr: 0x5
 cvt.s.w -45667.000000 -45667
+fcsr: 0x5
 cvt.s.w -7.000000 -7
+fcsr: 0x5
 cvt.s.w -347856.000000 -347856
+fcsr: 0x5
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x5
 cvt.s.w 268435440.000000 268435455
+fcsr: 0x1005
 cvt.s.w 23.000000 23
+fcsr: 0x5
 roundig mode: +inf
 cvt.s.w 0.000000 0
+fcsr: 0x6
 cvt.s.w 456.000000 456
+fcsr: 0x6
 cvt.s.w 3.000000 3
+fcsr: 0x6
 cvt.s.w -1.000000 -1
+fcsr: 0x6
 cvt.s.w -1.000000 -1
+fcsr: 0x6
 cvt.s.w 356.000000 356
+fcsr: 0x6
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x6
 cvt.s.w -5786.000000 -5786
+fcsr: 0x6
 cvt.s.w 1752.000000 1752
+fcsr: 0x6
 cvt.s.w 24575.000000 24575
+fcsr: 0x6
 cvt.s.w 10.000000 10
+fcsr: 0x6
 cvt.s.w -248562.000000 -248562
+fcsr: 0x6
 cvt.s.w -45786.000000 -45786
+fcsr: 0x6
 cvt.s.w 456.000000 456
+fcsr: 0x6
 cvt.s.w 34.000000 34
+fcsr: 0x6
 cvt.s.w 45786.000000 45786
+fcsr: 0x6
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x6
 cvt.s.w 107.000000 107
+fcsr: 0x6
 cvt.s.w -45667.000000 -45667
+fcsr: 0x6
 cvt.s.w -7.000000 -7
+fcsr: 0x6
 cvt.s.w -347856.000000 -347856
+fcsr: 0x6
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x6
 cvt.s.w 268435456.000000 268435455
+fcsr: 0x1006
 cvt.s.w 23.000000 23
+fcsr: 0x6
 roundig mode: -inf
 cvt.s.w 0.000000 0
+fcsr: 0x7
 cvt.s.w 456.000000 456
+fcsr: 0x7
 cvt.s.w 3.000000 3
+fcsr: 0x7
 cvt.s.w -1.000000 -1
+fcsr: 0x7
 cvt.s.w -1.000000 -1
+fcsr: 0x7
 cvt.s.w 356.000000 356
+fcsr: 0x7
 cvt.s.w 1000000000.000000 1000000000
+fcsr: 0x7
 cvt.s.w -5786.000000 -5786
+fcsr: 0x7
 cvt.s.w 1752.000000 1752
+fcsr: 0x7
 cvt.s.w 24575.000000 24575
+fcsr: 0x7
 cvt.s.w 10.000000 10
+fcsr: 0x7
 cvt.s.w -248562.000000 -248562
+fcsr: 0x7
 cvt.s.w -45786.000000 -45786
+fcsr: 0x7
 cvt.s.w 456.000000 456
+fcsr: 0x7
 cvt.s.w 34.000000 34
+fcsr: 0x7
 cvt.s.w 45786.000000 45786
+fcsr: 0x7
 cvt.s.w 1752065.000000 1752065
+fcsr: 0x7
 cvt.s.w 107.000000 107
+fcsr: 0x7
 cvt.s.w -45667.000000 -45667
+fcsr: 0x7
 cvt.s.w -7.000000 -7
+fcsr: 0x7
 cvt.s.w -347856.000000 -347856
+fcsr: 0x7
 cvt.s.w -2147483648.000000 -2147483648
+fcsr: 0x7
 cvt.s.w 268435440.000000 268435455
+fcsr: 0x1007
 cvt.s.w 23.000000 23
+fcsr: 0x7
 roundig mode: near
 cvt.w.s 0 0.000000
+fcsr: 0x4
 cvt.w.s 456 456.248962
+fcsr: 0x1004
 cvt.w.s 3 3.000000
+fcsr: 0x4
 cvt.w.s -1 -1.000000
+fcsr: 0x4
 cvt.w.s 1385 1384.599976
+fcsr: 0x1004
 cvt.w.s -7 -7.294568
+fcsr: 0x1004
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x4
 cvt.w.s -5786 -5786.470215
+fcsr: 0x1004
 cvt.w.s 1752 1752.000000
+fcsr: 0x4
 cvt.w.s 0 0.002457
+fcsr: 0x1004
 cvt.w.s 0 0.123400
+fcsr: 0x1004
 cvt.w.s -248563 -248562.765625
+fcsr: 0x1004
 cvt.w.s -45786 -45786.476562
+fcsr: 0x1004
 cvt.w.s 456 456.248962
+fcsr: 0x1004
 cvt.w.s 34 34.000462
+fcsr: 0x1004
 cvt.w.s 45786 45786.476562
+fcsr: 0x1004
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x4
 cvt.w.s 107 107.000000
+fcsr: 0x4
 cvt.w.s -45667 -45667.238281
+fcsr: 0x1004
 cvt.w.s -7 -7.294568
+fcsr: 0x1004
 cvt.w.s -347856 -347856.468750
+fcsr: 0x1004
 cvt.w.s 356048 356047.562500
+fcsr: 0x1004
 cvt.w.s -1 -1.000000
+fcsr: 0x4
 cvt.w.s 23 23.040001
+fcsr: 0x1004
 roundig mode: zero
 cvt.w.s 0 0.000000
+fcsr: 0x5
 cvt.w.s 456 456.248962
+fcsr: 0x1005
 cvt.w.s 3 3.000000
+fcsr: 0x5
 cvt.w.s -1 -1.000000
+fcsr: 0x5
 cvt.w.s 1384 1384.599976
+fcsr: 0x1005
 cvt.w.s -7 -7.294568
+fcsr: 0x1005
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x5
 cvt.w.s -5786 -5786.470215
+fcsr: 0x1005
 cvt.w.s 1752 1752.000000
+fcsr: 0x5
 cvt.w.s 0 0.002457
+fcsr: 0x1005
 cvt.w.s 0 0.123400
+fcsr: 0x1005
 cvt.w.s -248562 -248562.765625
+fcsr: 0x1005
 cvt.w.s -45786 -45786.476562
+fcsr: 0x1005
 cvt.w.s 456 456.248962
+fcsr: 0x1005
 cvt.w.s 34 34.000462
+fcsr: 0x1005
 cvt.w.s 45786 45786.476562
+fcsr: 0x1005
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x5
 cvt.w.s 107 107.000000
+fcsr: 0x5
 cvt.w.s -45667 -45667.238281
+fcsr: 0x1005
 cvt.w.s -7 -7.294568
+fcsr: 0x1005
 cvt.w.s -347856 -347856.468750
+fcsr: 0x1005
 cvt.w.s 356047 356047.562500
+fcsr: 0x1005
 cvt.w.s -1 -1.000000
+fcsr: 0x5
 cvt.w.s 23 23.040001
+fcsr: 0x1005
 roundig mode: +inf
 cvt.w.s 0 0.000000
+fcsr: 0x6
 cvt.w.s 457 456.248962
+fcsr: 0x1006
 cvt.w.s 3 3.000000
+fcsr: 0x6
 cvt.w.s -1 -1.000000
+fcsr: 0x6
 cvt.w.s 1385 1384.599976
+fcsr: 0x1006
 cvt.w.s -7 -7.294568
+fcsr: 0x1006
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x6
 cvt.w.s -5786 -5786.470215
+fcsr: 0x1006
 cvt.w.s 1752 1752.000000
+fcsr: 0x6
 cvt.w.s 1 0.002457
+fcsr: 0x1006
 cvt.w.s 1 0.123400
+fcsr: 0x1006
 cvt.w.s -248562 -248562.765625
+fcsr: 0x1006
 cvt.w.s -45786 -45786.476562
+fcsr: 0x1006
 cvt.w.s 457 456.248962
+fcsr: 0x1006
 cvt.w.s 35 34.000462
+fcsr: 0x1006
 cvt.w.s 45787 45786.476562
+fcsr: 0x1006
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x6
 cvt.w.s 107 107.000000
+fcsr: 0x6
 cvt.w.s -45667 -45667.238281
+fcsr: 0x1006
 cvt.w.s -7 -7.294568
+fcsr: 0x1006
 cvt.w.s -347856 -347856.468750
+fcsr: 0x1006
 cvt.w.s 356048 356047.562500
+fcsr: 0x1006
 cvt.w.s -1 -1.000000
+fcsr: 0x6
 cvt.w.s 24 23.040001
+fcsr: 0x1006
 roundig mode: -inf
 cvt.w.s 0 0.000000
+fcsr: 0x7
 cvt.w.s 456 456.248962
+fcsr: 0x1007
 cvt.w.s 3 3.000000
+fcsr: 0x7
 cvt.w.s -1 -1.000000
+fcsr: 0x7
 cvt.w.s 1384 1384.599976
+fcsr: 0x1007
 cvt.w.s -8 -7.294568
+fcsr: 0x1007
 cvt.w.s 1000000000 1000000000.000000
+fcsr: 0x7
 cvt.w.s -5787 -5786.470215
+fcsr: 0x1007
 cvt.w.s 1752 1752.000000
+fcsr: 0x7
 cvt.w.s 0 0.002457
+fcsr: 0x1007
 cvt.w.s 0 0.123400
+fcsr: 0x1007
 cvt.w.s -248563 -248562.765625
+fcsr: 0x1007
 cvt.w.s -45787 -45786.476562
+fcsr: 0x1007
 cvt.w.s 456 456.248962
+fcsr: 0x1007
 cvt.w.s 34 34.000462
+fcsr: 0x1007
 cvt.w.s 45786 45786.476562
+fcsr: 0x1007
 cvt.w.s 1752065 1752065.000000
+fcsr: 0x7
 cvt.w.s 107 107.000000
+fcsr: 0x7
 cvt.w.s -45668 -45667.238281
+fcsr: 0x1007
 cvt.w.s -8 -7.294568
+fcsr: 0x1007
 cvt.w.s -347857 -347856.468750
+fcsr: 0x1007
 cvt.w.s 356047 356047.562500
+fcsr: 0x1007
 cvt.w.s -1 -1.000000
+fcsr: 0x7
 cvt.w.s 23 23.040001
+fcsr: 0x1007
 roundig mode: near
 cvt.w.d 0 0.000000
+fcsr: 0x4
 cvt.w.d 456 456.248956
+fcsr: 0x1004
 cvt.w.d 3 3.000000
+fcsr: 0x4
 cvt.w.d -1 -1.000000
+fcsr: 0x4
 cvt.w.d 1385 1384.600000
+fcsr: 0x1004
 cvt.w.d -7 -7.294568
+fcsr: 0x1004
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x4
 cvt.w.d -5786 -5786.470000
+fcsr: 0x1004
 cvt.w.d 1752 1752.000000
+fcsr: 0x4
 cvt.w.d 0 0.002458
+fcsr: 0x1004
 cvt.w.d 0 0.000000
+fcsr: 0x1004
 cvt.w.d -248563 -248562.760000
+fcsr: 0x1004
 cvt.w.d -45786 -45786.476000
+fcsr: 0x1004
 cvt.w.d 456 456.248956
+fcsr: 0x1004
 cvt.w.d 34 34.000460
+fcsr: 0x1004
 cvt.w.d 45786 45786.476000
+fcsr: 0x1004
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x4
 cvt.w.d 107 107.000000
+fcsr: 0x4
 cvt.w.d -45667 -45667.240000
+fcsr: 0x1004
 cvt.w.d -7 -7.294568
+fcsr: 0x1004
 cvt.w.d -347856 -347856.475000
+fcsr: 0x1004
 cvt.w.d 356048 356047.560000
+fcsr: 0x1004
 cvt.w.d -1 -1.000000
+fcsr: 0x4
 cvt.w.d 23 23.040000
+fcsr: 0x1004
 roundig mode: zero
 cvt.w.d 0 0.000000
+fcsr: 0x5
 cvt.w.d 456 456.248956
+fcsr: 0x1005
 cvt.w.d 3 3.000000
+fcsr: 0x5
 cvt.w.d -1 -1.000000
+fcsr: 0x5
 cvt.w.d 1384 1384.600000
+fcsr: 0x1005
 cvt.w.d -7 -7.294568
+fcsr: 0x1005
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x5
 cvt.w.d -5786 -5786.470000
+fcsr: 0x1005
 cvt.w.d 1752 1752.000000
+fcsr: 0x5
 cvt.w.d 0 0.002458
+fcsr: 0x1005
 cvt.w.d 0 0.000000
+fcsr: 0x1005
 cvt.w.d -248562 -248562.760000
+fcsr: 0x1005
 cvt.w.d -45786 -45786.476000
+fcsr: 0x1005
 cvt.w.d 456 456.248956
+fcsr: 0x1005
 cvt.w.d 34 34.000460
+fcsr: 0x1005
 cvt.w.d 45786 45786.476000
+fcsr: 0x1005
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x5
 cvt.w.d 107 107.000000
+fcsr: 0x5
 cvt.w.d -45667 -45667.240000
+fcsr: 0x1005
 cvt.w.d -7 -7.294568
+fcsr: 0x1005
 cvt.w.d -347856 -347856.475000
+fcsr: 0x1005
 cvt.w.d 356047 356047.560000
+fcsr: 0x1005
 cvt.w.d -1 -1.000000
+fcsr: 0x5
 cvt.w.d 23 23.040000
+fcsr: 0x1005
 roundig mode: +inf
 cvt.w.d 0 0.000000
+fcsr: 0x6
 cvt.w.d 457 456.248956
+fcsr: 0x1006
 cvt.w.d 3 3.000000
+fcsr: 0x6
 cvt.w.d -1 -1.000000
+fcsr: 0x6
 cvt.w.d 1385 1384.600000
+fcsr: 0x1006
 cvt.w.d -7 -7.294568
+fcsr: 0x1006
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x6
 cvt.w.d -5786 -5786.470000
+fcsr: 0x1006
 cvt.w.d 1752 1752.000000
+fcsr: 0x6
 cvt.w.d 1 0.002458
+fcsr: 0x1006
 cvt.w.d 1 0.000000
+fcsr: 0x1006
 cvt.w.d -248562 -248562.760000
+fcsr: 0x1006
 cvt.w.d -45786 -45786.476000
+fcsr: 0x1006
 cvt.w.d 457 456.248956
+fcsr: 0x1006
 cvt.w.d 35 34.000460
+fcsr: 0x1006
 cvt.w.d 45787 45786.476000
+fcsr: 0x1006
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x6
 cvt.w.d 107 107.000000
+fcsr: 0x6
 cvt.w.d -45667 -45667.240000
+fcsr: 0x1006
 cvt.w.d -7 -7.294568
+fcsr: 0x1006
 cvt.w.d -347856 -347856.475000
+fcsr: 0x1006
 cvt.w.d 356048 356047.560000
+fcsr: 0x1006
 cvt.w.d -1 -1.000000
+fcsr: 0x6
 cvt.w.d 24 23.040000
+fcsr: 0x1006
 roundig mode: -inf
 cvt.w.d 0 0.000000
+fcsr: 0x7
 cvt.w.d 456 456.248956
+fcsr: 0x1007
 cvt.w.d 3 3.000000
+fcsr: 0x7
 cvt.w.d -1 -1.000000
+fcsr: 0x7
 cvt.w.d 1384 1384.600000
+fcsr: 0x1007
 cvt.w.d -8 -7.294568
+fcsr: 0x1007
 cvt.w.d 1000000000 1000000000.000000
+fcsr: 0x7
 cvt.w.d -5787 -5786.470000
+fcsr: 0x1007
 cvt.w.d 1752 1752.000000
+fcsr: 0x7
 cvt.w.d 0 0.002458
+fcsr: 0x1007
 cvt.w.d 0 0.000000
+fcsr: 0x1007
 cvt.w.d -248563 -248562.760000
+fcsr: 0x1007
 cvt.w.d -45787 -45786.476000
+fcsr: 0x1007
 cvt.w.d 456 456.248956
+fcsr: 0x1007
 cvt.w.d 34 34.000460
+fcsr: 0x1007
 cvt.w.d 45786 45786.476000
+fcsr: 0x1007
 cvt.w.d 1752065 1752065.000000
+fcsr: 0x7
 cvt.w.d 107 107.000000
+fcsr: 0x7
 cvt.w.d -45668 -45667.240000
+fcsr: 0x1007
 cvt.w.d -8 -7.294568
+fcsr: 0x1007
 cvt.w.d -347857 -347856.475000
+fcsr: 0x1007
 cvt.w.d 356047 356047.560000
+fcsr: 0x1007
 cvt.w.d -1 -1.000000
+fcsr: 0x7
 cvt.w.d 23 23.040000
+fcsr: 0x1007
 roundig mode: near
 cvt.d.l 18.000000 18
+fcsr: 0x4
 cvt.d.l 25.000000 25
+fcsr: 0x4
 cvt.d.l 3.000000 3
+fcsr: 0x4
 cvt.d.l -1.000000 -1
+fcsr: 0x4
 cvt.d.l 4294967295.000000 4294967295
+fcsr: 0x4
 cvt.d.l 356.000000 356
+fcsr: 0x4
 cvt.d.l 1000000.000000 1000000
+fcsr: 0x4
 cvt.d.l -5786.000000 -5786
+fcsr: 0x4
 cvt.d.l -1.000000 -1
+fcsr: 0x4
 cvt.d.l 24575.000000 24575
+fcsr: 0x4
 cvt.d.l 10.000000 10
+fcsr: 0x4
 cvt.d.l -125458.000000 -125458
+fcsr: 0x4
 cvt.d.l -486.000000 -486
+fcsr: 0x4
 cvt.d.l 456.000000 456
+fcsr: 0x4
 cvt.d.l 34.000000 34
+fcsr: 0x4
 cvt.d.l 45786.000000 45786
+fcsr: 0x4
 cvt.d.l 0.000000 0
+fcsr: 0x4
 cvt.d.l 1700000.000000 1700000
+fcsr: 0x4
 cvt.d.l -45667.000000 -45667
+fcsr: 0x4
 cvt.d.l -7.000000 -7
+fcsr: 0x4
 cvt.d.l -347856.000000 -347856
+fcsr: 0x4
 cvt.d.l 2147483648.000000 2147483648
+fcsr: 0x4
 cvt.d.l 268435455.000000 268435455
+fcsr: 0x4
 cvt.d.l 23.000000 23
+fcsr: 0x4
 roundig mode: zero
 cvt.d.l 18.000000 18
+fcsr: 0x5
 cvt.d.l 25.000000 25
+fcsr: 0x5
 cvt.d.l 3.000000 3
+fcsr: 0x5
 cvt.d.l -1.000000 -1
+fcsr: 0x5
 cvt.d.l 4294967295.000000 4294967295
+fcsr: 0x5
 cvt.d.l 356.000000 356
+fcsr: 0x5
 cvt.d.l 1000000.000000 1000000
+fcsr: 0x5
 cvt.d.l -5786.000000 -5786
+fcsr: 0x5
 cvt.d.l -1.000000 -1
+fcsr: 0x5
 cvt.d.l 24575.000000 24575
+fcsr: 0x5
 cvt.d.l 10.000000 10
+fcsr: 0x5
 cvt.d.l -125458.000000 -125458
+fcsr: 0x5
 cvt.d.l -486.000000 -486
+fcsr: 0x5
 cvt.d.l 456.000000 456
+fcsr: 0x5
 cvt.d.l 34.000000 34
+fcsr: 0x5
 cvt.d.l 45786.000000 45786
+fcsr: 0x5
 cvt.d.l 0.000000 0
+fcsr: 0x5
 cvt.d.l 1700000.000000 1700000
+fcsr: 0x5
 cvt.d.l -45667.000000 -45667
+fcsr: 0x5
 cvt.d.l -7.000000 -7
+fcsr: 0x5
 cvt.d.l -347856.000000 -347856
+fcsr: 0x5
 cvt.d.l 2147483648.000000 2147483648
+fcsr: 0x5
 cvt.d.l 268435455.000000 268435455
+fcsr: 0x5
 cvt.d.l 23.000000 23
+fcsr: 0x5
 roundig mode: +inf
 cvt.d.l 18.000000 18
+fcsr: 0x6
 cvt.d.l 25.000000 25
+fcsr: 0x6
 cvt.d.l 3.000000 3
+fcsr: 0x6
 cvt.d.l -1.000000 -1
+fcsr: 0x6
 cvt.d.l 4294967295.000000 4294967295
+fcsr: 0x6
 cvt.d.l 356.000000 356
+fcsr: 0x6
 cvt.d.l 1000000.000000 1000000
+fcsr: 0x6
 cvt.d.l -5786.000000 -5786
+fcsr: 0x6
 cvt.d.l -1.000000 -1
+fcsr: 0x6
 cvt.d.l 24575.000000 24575
+fcsr: 0x6
 cvt.d.l 10.000000 10
+fcsr: 0x6
 cvt.d.l -125458.000000 -125458
+fcsr: 0x6
 cvt.d.l -486.000000 -486
+fcsr: 0x6
 cvt.d.l 456.000000 456
+fcsr: 0x6
 cvt.d.l 34.000000 34
+fcsr: 0x6
 cvt.d.l 45786.000000 45786
+fcsr: 0x6
 cvt.d.l 0.000000 0
+fcsr: 0x6
 cvt.d.l 1700000.000000 1700000
+fcsr: 0x6
 cvt.d.l -45667.000000 -45667
+fcsr: 0x6
 cvt.d.l -7.000000 -7
+fcsr: 0x6
 cvt.d.l -347856.000000 -347856
+fcsr: 0x6
 cvt.d.l 2147483648.000000 2147483648
+fcsr: 0x6
 cvt.d.l 268435455.000000 268435455
+fcsr: 0x6
 cvt.d.l 23.000000 23
+fcsr: 0x6
 roundig mode: -inf
 cvt.d.l 18.000000 18
+fcsr: 0x7
 cvt.d.l 25.000000 25
+fcsr: 0x7
 cvt.d.l 3.000000 3
+fcsr: 0x7
 cvt.d.l -1.000000 -1
+fcsr: 0x7
 cvt.d.l 4294967295.000000 4294967295
+fcsr: 0x7
 cvt.d.l 356.000000 356
+fcsr: 0x7
 cvt.d.l 1000000.000000 1000000
+fcsr: 0x7
 cvt.d.l -5786.000000 -5786
+fcsr: 0x7
 cvt.d.l -1.000000 -1
+fcsr: 0x7
 cvt.d.l 24575.000000 24575
+fcsr: 0x7
 cvt.d.l 10.000000 10
+fcsr: 0x7
 cvt.d.l -125458.000000 -125458
+fcsr: 0x7
 cvt.d.l -486.000000 -486
+fcsr: 0x7
 cvt.d.l 456.000000 456
+fcsr: 0x7
 cvt.d.l 34.000000 34
+fcsr: 0x7
 cvt.d.l 45786.000000 45786
+fcsr: 0x7
 cvt.d.l 0.000000 0
+fcsr: 0x7
 cvt.d.l 1700000.000000 1700000
+fcsr: 0x7
 cvt.d.l -45667.000000 -45667
+fcsr: 0x7
 cvt.d.l -7.000000 -7
+fcsr: 0x7
 cvt.d.l -347856.000000 -347856
+fcsr: 0x7
 cvt.d.l 2147483648.000000 2147483648
+fcsr: 0x7
 cvt.d.l 268435455.000000 268435455
+fcsr: 0x7
 cvt.d.l 23.000000 23
+fcsr: 0x7
 roundig mode: near
 cvt.l.s 0 0.000000
+fcsr: 0x4
 cvt.l.s 456 456.248962
+fcsr: 0x1004
 cvt.l.s 3 3.000000
+fcsr: 0x4
 cvt.l.s -1 -1.000000
+fcsr: 0x4
 cvt.l.s 1385 1384.599976
+fcsr: 0x1004
 cvt.l.s -7 -7.294568
+fcsr: 0x1004
 cvt.l.s 1000000000 1000000000.000000
+fcsr: 0x4
 cvt.l.s -5786 -5786.470215
+fcsr: 0x1004
 cvt.l.s 1752 1752.000000
+fcsr: 0x4
 cvt.l.s 0 0.002457
+fcsr: 0x1004
 cvt.l.s 0 0.123400
+fcsr: 0x1004
 cvt.l.s -248563 -248562.765625
+fcsr: 0x1004
 cvt.l.s -45786 -45786.476562
+fcsr: 0x1004
 cvt.l.s 456 456.248962
+fcsr: 0x1004
 cvt.l.s 34 34.000462
+fcsr: 0x1004
 cvt.l.s 45786 45786.476562
+fcsr: 0x1004
 cvt.l.s 1752065 1752065.000000
+fcsr: 0x4
 cvt.l.s 107 107.000000
+fcsr: 0x4
 cvt.l.s -45667 -45667.238281
+fcsr: 0x1004
 cvt.l.s -7 -7.294568
+fcsr: 0x1004
 cvt.l.s -347856 -347856.468750
+fcsr: 0x1004
 cvt.l.s 356048 356047.562500
+fcsr: 0x1004
 cvt.l.s -1 -1.000000
+fcsr: 0x4
 cvt.l.s 23 23.040001
+fcsr: 0x1004
 roundig mode: zero
 cvt.l.s 0 0.000000
+fcsr: 0x5
 cvt.l.s 456 456.248962
+fcsr: 0x1005
 cvt.l.s 3 3.000000
+fcsr: 0x5
 cvt.l.s -1 -1.000000
+fcsr: 0x5
 cvt.l.s 1384 1384.599976
+fcsr: 0x1005
 cvt.l.s -7 -7.294568
+fcsr: 0x1005
 cvt.l.s 1000000000 1000000000.000000
+fcsr: 0x5
 cvt.l.s -5786 -5786.470215
+fcsr: 0x1005
 cvt.l.s 1752 1752.000000
+fcsr: 0x5
 cvt.l.s 0 0.002457
+fcsr: 0x1005
 cvt.l.s 0 0.123400
+fcsr: 0x1005
 cvt.l.s -248562 -248562.765625
+fcsr: 0x1005
 cvt.l.s -45786 -45786.476562
+fcsr: 0x1005
 cvt.l.s 456 456.248962
+fcsr: 0x1005
 cvt.l.s 34 34.000462
+fcsr: 0x1005
 cvt.l.s 45786 45786.476562
+fcsr: 0x1005
 cvt.l.s 1752065 1752065.000000
+fcsr: 0x5
 cvt.l.s 107 107.000000
+fcsr: 0x5
 cvt.l.s -45667 -45667.238281
+fcsr: 0x1005
 cvt.l.s -7 -7.294568
+fcsr: 0x1005
 cvt.l.s -347856 -347856.468750
+fcsr: 0x1005
 cvt.l.s 356047 356047.562500
+fcsr: 0x1005
 cvt.l.s -1 -1.000000
+fcsr: 0x5
 cvt.l.s 23 23.040001
+fcsr: 0x1005
 roundig mode: +inf
 cvt.l.s 0 0.000000
+fcsr: 0x6
 cvt.l.s 457 456.248962
+fcsr: 0x1006
 cvt.l.s 3 3.000000
+fcsr: 0x6
 cvt.l.s -1 -1.000000
+fcsr: 0x6
 cvt.l.s 1385 1384.599976
+fcsr: 0x1006
 cvt.l.s -7 -7.294568
+fcsr: 0x1006
 cvt.l.s 1000000000 1000000000.000000
+fcsr: 0x6
 cvt.l.s -5786 -5786.470215
+fcsr: 0x1006
 cvt.l.s 1752 1752.000000
+fcsr: 0x6
 cvt.l.s 1 0.002457
+fcsr: 0x1006
 cvt.l.s 1 0.123400
+fcsr: 0x1006
 cvt.l.s -248562 -248562.765625
+fcsr: 0x1006
 cvt.l.s -45786 -45786.476562
+fcsr: 0x1006
 cvt.l.s 457 456.248962
+fcsr: 0x1006
 cvt.l.s 35 34.000462
+fcsr: 0x1006
 cvt.l.s 45787 45786.476562
+fcsr: 0x1006
 cvt.l.s 1752065 1752065.000000
+fcsr: 0x6
 cvt.l.s 107 107.000000
+fcsr: 0x6
 cvt.l.s -45667 -45667.238281
+fcsr: 0x1006
 cvt.l.s -7 -7.294568
+fcsr: 0x1006
 cvt.l.s -347856 -347856.468750
+fcsr: 0x1006
 cvt.l.s 356048 356047.562500
+fcsr: 0x1006
 cvt.l.s -1 -1.000000
+fcsr: 0x6
 cvt.l.s 24 23.040001
+fcsr: 0x1006
 roundig mode: -inf
 cvt.l.s 0 0.000000
+fcsr: 0x7
 cvt.l.s 456 456.248962
+fcsr: 0x1007
 cvt.l.s 3 3.000000
+fcsr: 0x7
 cvt.l.s -1 -1.000000
+fcsr: 0x7
 cvt.l.s 1384 1384.599976
+fcsr: 0x1007
 cvt.l.s -8 -7.294568
+fcsr: 0x1007
 cvt.l.s 1000000000 1000000000.000000
+fcsr: 0x7
 cvt.l.s -5787 -5786.470215
+fcsr: 0x1007
 cvt.l.s 1752 1752.000000
+fcsr: 0x7
 cvt.l.s 0 0.002457
+fcsr: 0x1007
 cvt.l.s 0 0.123400
+fcsr: 0x1007
 cvt.l.s -248563 -248562.765625
+fcsr: 0x1007
 cvt.l.s -45787 -45786.476562
+fcsr: 0x1007
 cvt.l.s 456 456.248962
+fcsr: 0x1007
 cvt.l.s 34 34.000462
+fcsr: 0x1007
 cvt.l.s 45786 45786.476562
+fcsr: 0x1007
 cvt.l.s 1752065 1752065.000000
+fcsr: 0x7
 cvt.l.s 107 107.000000
+fcsr: 0x7
 cvt.l.s -45668 -45667.238281
+fcsr: 0x1007
 cvt.l.s -8 -7.294568
+fcsr: 0x1007
 cvt.l.s -347857 -347856.468750
+fcsr: 0x1007
 cvt.l.s 356047 356047.562500
+fcsr: 0x1007
 cvt.l.s -1 -1.000000
+fcsr: 0x7
 cvt.l.s 23 23.040001
+fcsr: 0x1007
 roundig mode: near
 cvt.l.d 0 0.000000
+fcsr: 0x4
 cvt.l.d 456 456.248956
+fcsr: 0x1004
 cvt.l.d 3 3.000000
+fcsr: 0x4
 cvt.l.d -1 -1.000000
+fcsr: 0x4
 cvt.l.d 1385 1384.600000
+fcsr: 0x1004
 cvt.l.d -7 -7.294568
+fcsr: 0x1004
 cvt.l.d 1000000000 1000000000.000000
+fcsr: 0x4
 cvt.l.d -5786 -5786.470000
+fcsr: 0x1004
 cvt.l.d 1752 1752.000000
+fcsr: 0x4
 cvt.l.d 0 0.002458
+fcsr: 0x1004
 cvt.l.d 0 0.000000
+fcsr: 0x1004
 cvt.l.d -248563 -248562.760000
+fcsr: 0x1004
 cvt.l.d -45786 -45786.476000
+fcsr: 0x1004
 cvt.l.d 456 456.248956
+fcsr: 0x1004
 cvt.l.d 34 34.000460
+fcsr: 0x1004
 cvt.l.d 45786 45786.476000
+fcsr: 0x1004
 cvt.l.d 1752065 1752065.000000
+fcsr: 0x4
 cvt.l.d 107 107.000000
+fcsr: 0x4
 cvt.l.d -45667 -45667.240000
+fcsr: 0x1004
 cvt.l.d -7 -7.294568
+fcsr: 0x1004
 cvt.l.d -347856 -347856.475000
+fcsr: 0x1004
 cvt.l.d 356048 356047.560000
+fcsr: 0x1004
 cvt.l.d -1 -1.000000
+fcsr: 0x4
 cvt.l.d 23 23.040000
+fcsr: 0x1004
 roundig mode: zero
 cvt.l.d 0 0.000000
+fcsr: 0x5
 cvt.l.d 456 456.248956
+fcsr: 0x1005
 cvt.l.d 3 3.000000
+fcsr: 0x5
 cvt.l.d -1 -1.000000
+fcsr: 0x5
 cvt.l.d 1384 1384.600000
+fcsr: 0x1005
 cvt.l.d -7 -7.294568
+fcsr: 0x1005
 cvt.l.d 1000000000 1000000000.000000
+fcsr: 0x5
 cvt.l.d -5786 -5786.470000
+fcsr: 0x1005
 cvt.l.d 1752 1752.000000
+fcsr: 0x5
 cvt.l.d 0 0.002458
+fcsr: 0x1005
 cvt.l.d 0 0.000000
+fcsr: 0x1005
 cvt.l.d -248562 -248562.760000
+fcsr: 0x1005
 cvt.l.d -45786 -45786.476000
+fcsr: 0x1005
 cvt.l.d 456 456.248956
+fcsr: 0x1005
 cvt.l.d 34 34.000460
+fcsr: 0x1005
 cvt.l.d 45786 45786.476000
+fcsr: 0x1005
 cvt.l.d 1752065 1752065.000000
+fcsr: 0x5
 cvt.l.d 107 107.000000
+fcsr: 0x5
 cvt.l.d -45667 -45667.240000
+fcsr: 0x1005
 cvt.l.d -7 -7.294568
+fcsr: 0x1005
 cvt.l.d -347856 -347856.475000
+fcsr: 0x1005
 cvt.l.d 356047 356047.560000
+fcsr: 0x1005
 cvt.l.d -1 -1.000000
+fcsr: 0x5
 cvt.l.d 23 23.040000
+fcsr: 0x1005
 roundig mode: +inf
 cvt.l.d 0 0.000000
+fcsr: 0x6
 cvt.l.d 457 456.248956
+fcsr: 0x1006
 cvt.l.d 3 3.000000
+fcsr: 0x6
 cvt.l.d -1 -1.000000
+fcsr: 0x6
 cvt.l.d 1385 1384.600000
+fcsr: 0x1006
 cvt.l.d -7 -7.294568
+fcsr: 0x1006
 cvt.l.d 1000000000 1000000000.000000
+fcsr: 0x6
 cvt.l.d -5786 -5786.470000
+fcsr: 0x1006
 cvt.l.d 1752 1752.000000
+fcsr: 0x6
 cvt.l.d 1 0.002458
+fcsr: 0x1006
 cvt.l.d 1 0.000000
+fcsr: 0x1006
 cvt.l.d -248562 -248562.760000
+fcsr: 0x1006
 cvt.l.d -45786 -45786.476000
+fcsr: 0x1006
 cvt.l.d 457 456.248956
+fcsr: 0x1006
 cvt.l.d 35 34.000460
+fcsr: 0x1006
 cvt.l.d 45787 45786.476000
+fcsr: 0x1006
 cvt.l.d 1752065 1752065.000000
+fcsr: 0x6
 cvt.l.d 107 107.000000
+fcsr: 0x6
 cvt.l.d -45667 -45667.240000
+fcsr: 0x1006
 cvt.l.d -7 -7.294568
+fcsr: 0x1006
 cvt.l.d -347856 -347856.475000
+fcsr: 0x1006
 cvt.l.d 356048 356047.560000
+fcsr: 0x1006
 cvt.l.d -1 -1.000000
+fcsr: 0x6
 cvt.l.d 24 23.040000
+fcsr: 0x1006
 roundig mode: -inf
 cvt.l.d 0 0.000000
+fcsr: 0x7
 cvt.l.d 456 456.248956
+fcsr: 0x1007
 cvt.l.d 3 3.000000
+fcsr: 0x7
 cvt.l.d -1 -1.000000
+fcsr: 0x7
 cvt.l.d 1384 1384.600000
+fcsr: 0x1007
 cvt.l.d -8 -7.294568
+fcsr: 0x1007
 cvt.l.d 1000000000 1000000000.000000
+fcsr: 0x7
 cvt.l.d -5787 -5786.470000
+fcsr: 0x1007
 cvt.l.d 1752 1752.000000
+fcsr: 0x7
 cvt.l.d 0 0.002458
+fcsr: 0x1007
 cvt.l.d 0 0.000000
+fcsr: 0x1007
 cvt.l.d -248563 -248562.760000
+fcsr: 0x1007
 cvt.l.d -45787 -45786.476000
+fcsr: 0x1007
 cvt.l.d 456 456.248956
+fcsr: 0x1007
 cvt.l.d 34 34.000460
+fcsr: 0x1007
 cvt.l.d 45786 45786.476000
+fcsr: 0x1007
 cvt.l.d 1752065 1752065.000000
+fcsr: 0x7
 cvt.l.d 107 107.000000
+fcsr: 0x7
 cvt.l.d -45668 -45667.240000
+fcsr: 0x1007
 cvt.l.d -8 -7.294568
+fcsr: 0x1007
 cvt.l.d -347857 -347856.475000
+fcsr: 0x1007
 cvt.l.d 356047 356047.560000
+fcsr: 0x1007
 cvt.l.d -1 -1.000000
+fcsr: 0x7
 cvt.l.d 23 23.040000
+fcsr: 0x1007
 roundig mode: near
 cvt.s.l 18.000000 18
+fcsr: 0x4
 cvt.s.l 25.000000 25
+fcsr: 0x4
 cvt.s.l 3.000000 3
+fcsr: 0x4
 cvt.s.l -1.000000 -1
+fcsr: 0x4
 cvt.s.l 4294967296.000000 4294967295
+fcsr: 0x1004
 cvt.s.l 356.000000 356
+fcsr: 0x4
 cvt.s.l 1000000.000000 1000000
+fcsr: 0x4
 cvt.s.l -5786.000000 -5786
+fcsr: 0x4
 cvt.s.l -1.000000 -1
+fcsr: 0x4
 cvt.s.l 24575.000000 24575
+fcsr: 0x4
 cvt.s.l 10.000000 10
+fcsr: 0x4
 cvt.s.l -125458.000000 -125458
+fcsr: 0x4
 cvt.s.l -486.000000 -486
+fcsr: 0x4
 cvt.s.l 456.000000 456
+fcsr: 0x4
 cvt.s.l 34.000000 34
+fcsr: 0x4
 cvt.s.l 45786.000000 45786
+fcsr: 0x4
 cvt.s.l 0.000000 0
+fcsr: 0x4
 cvt.s.l 1700000.000000 1700000
+fcsr: 0x4
 cvt.s.l -45667.000000 -45667
+fcsr: 0x4
 cvt.s.l -7.000000 -7
+fcsr: 0x4
 cvt.s.l -347856.000000 -347856
+fcsr: 0x4
 cvt.s.l 2147483648.000000 2147483648
+fcsr: 0x4
 cvt.s.l 268435456.000000 268435455
+fcsr: 0x1004
 cvt.s.l 23.000000 23
+fcsr: 0x4
 roundig mode: zero
 cvt.s.l 18.000000 18
+fcsr: 0x5
 cvt.s.l 25.000000 25
+fcsr: 0x5
 cvt.s.l 3.000000 3
+fcsr: 0x5
 cvt.s.l -1.000000 -1
+fcsr: 0x5
 cvt.s.l 4294967040.000000 4294967295
+fcsr: 0x1005
 cvt.s.l 356.000000 356
+fcsr: 0x5
 cvt.s.l 1000000.000000 1000000
+fcsr: 0x5
 cvt.s.l -5786.000000 -5786
+fcsr: 0x5
 cvt.s.l -1.000000 -1
+fcsr: 0x5
 cvt.s.l 24575.000000 24575
+fcsr: 0x5
 cvt.s.l 10.000000 10
+fcsr: 0x5
 cvt.s.l -125458.000000 -125458
+fcsr: 0x5
 cvt.s.l -486.000000 -486
+fcsr: 0x5
 cvt.s.l 456.000000 456
+fcsr: 0x5
 cvt.s.l 34.000000 34
+fcsr: 0x5
 cvt.s.l 45786.000000 45786
+fcsr: 0x5
 cvt.s.l 0.000000 0
+fcsr: 0x5
 cvt.s.l 1700000.000000 1700000
+fcsr: 0x5
 cvt.s.l -45667.000000 -45667
+fcsr: 0x5
 cvt.s.l -7.000000 -7
+fcsr: 0x5
 cvt.s.l -347856.000000 -347856
+fcsr: 0x5
 cvt.s.l 2147483648.000000 2147483648
+fcsr: 0x5
 cvt.s.l 268435440.000000 268435455
+fcsr: 0x1005
 cvt.s.l 23.000000 23
+fcsr: 0x5
 roundig mode: +inf
 cvt.s.l 18.000000 18
+fcsr: 0x6
 cvt.s.l 25.000000 25
+fcsr: 0x6
 cvt.s.l 3.000000 3
+fcsr: 0x6
 cvt.s.l -1.000000 -1
+fcsr: 0x6
 cvt.s.l 4294967296.000000 4294967295
+fcsr: 0x1006
 cvt.s.l 356.000000 356
+fcsr: 0x6
 cvt.s.l 1000000.000000 1000000
+fcsr: 0x6
 cvt.s.l -5786.000000 -5786
+fcsr: 0x6
 cvt.s.l -1.000000 -1
+fcsr: 0x6
 cvt.s.l 24575.000000 24575
+fcsr: 0x6
 cvt.s.l 10.000000 10
+fcsr: 0x6
 cvt.s.l -125458.000000 -125458
+fcsr: 0x6
 cvt.s.l -486.000000 -486
+fcsr: 0x6
 cvt.s.l 456.000000 456
+fcsr: 0x6
 cvt.s.l 34.000000 34
+fcsr: 0x6
 cvt.s.l 45786.000000 45786
+fcsr: 0x6
 cvt.s.l 0.000000 0
+fcsr: 0x6
 cvt.s.l 1700000.000000 1700000
+fcsr: 0x6
 cvt.s.l -45667.000000 -45667
+fcsr: 0x6
 cvt.s.l -7.000000 -7
+fcsr: 0x6
 cvt.s.l -347856.000000 -347856
+fcsr: 0x6
 cvt.s.l 2147483648.000000 2147483648
+fcsr: 0x6
 cvt.s.l 268435456.000000 268435455
+fcsr: 0x1006
 cvt.s.l 23.000000 23
+fcsr: 0x6
 roundig mode: -inf
 cvt.s.l 18.000000 18
+fcsr: 0x7
 cvt.s.l 25.000000 25
+fcsr: 0x7
 cvt.s.l 3.000000 3
+fcsr: 0x7
 cvt.s.l -1.000000 -1
+fcsr: 0x7
 cvt.s.l 4294967040.000000 4294967295
+fcsr: 0x1007
 cvt.s.l 356.000000 356
+fcsr: 0x7
 cvt.s.l 1000000.000000 1000000
+fcsr: 0x7
 cvt.s.l -5786.000000 -5786
+fcsr: 0x7
 cvt.s.l -1.000000 -1
+fcsr: 0x7
 cvt.s.l 24575.000000 24575
+fcsr: 0x7
 cvt.s.l 10.000000 10
+fcsr: 0x7
 cvt.s.l -125458.000000 -125458
+fcsr: 0x7
 cvt.s.l -486.000000 -486
+fcsr: 0x7
 cvt.s.l 456.000000 456
+fcsr: 0x7
 cvt.s.l 34.000000 34
+fcsr: 0x7
 cvt.s.l 45786.000000 45786
+fcsr: 0x7
 cvt.s.l 0.000000 0
+fcsr: 0x7
 cvt.s.l 1700000.000000 1700000
+fcsr: 0x7
 cvt.s.l -45667.000000 -45667
+fcsr: 0x7
 cvt.s.l -7.000000 -7
+fcsr: 0x7
 cvt.s.l -347856.000000 -347856
+fcsr: 0x7
 cvt.s.l 2147483648.000000 2147483648
+fcsr: 0x7
 cvt.s.l 268435440.000000 268435455
+fcsr: 0x1007
 cvt.s.l 23.000000 23
+fcsr: 0x7
diff --git a/none/tests/mips64/test_fcsr.c b/none/tests/mips64/test_fcsr.c
new file mode 100644
index 0000000..ef92f7b
--- /dev/null
+++ b/none/tests/mips64/test_fcsr.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+
+int main ()
+{
+   long out [] = {0, 0};
+   __asm__ volatile("cfc1       $a1,   $31"                 "\n\t"
+                    "dli        $t0,   0x405ee0a3d70a3d71"  "\n\t"
+                    "dmtc1      $t0,   $f0"                 "\n\t"
+                    "ctc1       $zero, $31"                 "\n\t"
+                    "round.w.d  $f0,   $f0"                 "\n\t"
+                    "cfc1       $a2,   $31"                 "\n\t"
+                    "sd         $a2,   0(%0)"               "\n\t"
+                    "dli        $t0,   0x3ff0000000000000"  "\n\t"
+                    "dmtc1      $t0,   $f0"                 "\n\t"
+                    "ctc1       $zero, $31"                 "\n\t"
+                    "round.w.d  $f0,   $f0"                 "\n\t"
+                    "cfc1       $a2,   $31"                 "\n\t"
+                    "sd         $a2,   8(%0)"               "\n\t"
+                    "ctc1       $a1,   $31"                 "\n\t"
+                    :
+                    : "r" (out)
+                    : "a1", "a2", "t0", "$f0"
+                   );
+   printf("FCSR::1: 0x%lx, 2: 0x%lx\n", out[0], out[1]);
+   return 0;
+}
diff --git a/none/tests/mips64/test_fcsr.stderr.exp b/none/tests/mips64/test_fcsr.stderr.exp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/none/tests/mips64/test_fcsr.stderr.exp
diff --git a/none/tests/mips64/test_fcsr.stdout.exp b/none/tests/mips64/test_fcsr.stdout.exp
new file mode 100644
index 0000000..a1f085b
--- /dev/null
+++ b/none/tests/mips64/test_fcsr.stdout.exp
@@ -0,0 +1 @@
+FCSR::1: 0x1004, 2: 0x0
diff --git a/none/tests/mips64/test_fcsr.vgtest b/none/tests/mips64/test_fcsr.vgtest
new file mode 100644
index 0000000..c864d25
--- /dev/null
+++ b/none/tests/mips64/test_fcsr.vgtest
@@ -0,0 +1,2 @@
+prog: test_fcsr
+vgopts: -q