about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/dynarec/arm64/arm64_emitter.h2
-rw-r--r--src/dynarec/arm64/arm64_printer.c13
-rw-r--r--src/dynarec/arm64/dynarec_arm64_dd.c9
-rw-r--r--src/dynarec/arm64/dynarec_arm64_df.c26
-rw-r--r--src/dynarec/arm64/dynarec_arm64_functions.c8
-rw-r--r--src/dynarec/arm64/dynarec_arm64_helper.h6
-rw-r--r--src/emu/x87emu_private.h4
-rw-r--r--tests/ref22.txt1342
-rwxr-xr-xtests/test22bin16360 -> 16304 bytes
-rw-r--r--tests/test22.c97
10 files changed, 600 insertions, 907 deletions
diff --git a/src/dynarec/arm64/arm64_emitter.h b/src/dynarec/arm64/arm64_emitter.h
index f86a93ec..be7bf0c7 100644
--- a/src/dynarec/arm64/arm64_emitter.h
+++ b/src/dynarec/arm64/arm64_emitter.h
@@ -1150,7 +1150,9 @@ int convert_bitmask(uint64_t bitmask);
 #define VFMOVDQ_8(Vd, u8)                   EMIT(FMOV_vector_imm(1, 1, ((u8)>>5)&0b111, (u8)&0b11111, Vd))
 
 #define FMOV_scalar_imm(type, imm8, Rd)     (0b11110<<24 | (type)<<22 | 1<<21 | (imm8)<<13 | 0b100<<10 | (Rd))
+// FMOV to Sd, imm=7 :~6:6:6:6:6:6:5:4 :3:2:1:0....
 #define FMOVS_8(Sd, u8)                     EMIT(FMOV_scalar_imm(0b00, u8, Sd))
+// FMOV to Dd, imm=7 :~6:6:6:6:6:6:6:6:6:5:4 :3:2:1:0....
 #define FMOVD_8(Dd, u8)                     EMIT(FMOV_scalar_imm(0b01, u8, Dd))
 
 // VMOV
diff --git a/src/dynarec/arm64/arm64_printer.c b/src/dynarec/arm64/arm64_printer.c
index 2d28a831..0b043886 100644
--- a/src/dynarec/arm64/arm64_printer.c
+++ b/src/dynarec/arm64/arm64_printer.c
@@ -743,8 +743,12 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
                 snprintf(buff, sizeof(buff), "BFC %s, %d, %d", sf?Xt[Rd]:Wt[Rd], lsb, width);

             else

                 snprintf(buff, sizeof(buff), "BFI %s, %s, %d, %d", sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn], lsb, width);

-        } else

-            snprintf(buff, sizeof(buff), "BFXIL %s, %s, %d, %d", sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn], immr, imms-immr+1);

+        } else {

+            if(Rn==31 && immr==0)

+                snprintf(buff, sizeof(buff), "BFC %s, %d, %d", sf?Xt[Rd]:Wt[Rd], immr, imms-immr+1);

+            else

+                snprintf(buff, sizeof(buff), "BFXIL %s, %s, %d, %d", sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn], immr, imms-immr+1);

+        }

         return buff;

     }

     // ---- BRANCH / TEST

@@ -1643,6 +1647,11 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
         snprintf(buff, sizeof(buff), "%cQXTN%s V%d.%s, V%d.%s", a.U?'U':'S', a.Q?"2":"", Rd, Vd, Rn, Va);

         return buff;

     }

+    if(isMask(opcode, "01U11110ff100001010010nnnnnddddd", &a)) {

+        const char Z[] = {'B', 'H', 'S', 'D', '?'};

+        snprintf(buff, sizeof(buff), "SQXT%sN %c%d, %c%d", a.U?"U":"", Z[sf], Rn, Z[sf+1], Rm);

+        return buff;

+    }

 

     // (S/U)SSHL(2) / (U/S)XTL(2)

     if(isMask(opcode, "0QU011110hhhhiii101001nnnnnddddd", &a)) {

diff --git a/src/dynarec/arm64/dynarec_arm64_dd.c b/src/dynarec/arm64/dynarec_arm64_dd.c
index 33282abd..6e93c789 100644
--- a/src/dynarec/arm64/dynarec_arm64_dd.c
+++ b/src/dynarec/arm64/dynarec_arm64_dd.c
@@ -161,19 +161,20 @@ uintptr_t dynarec64_DD(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     s0 = fpu_get_scratch(dyn, ninst);
                     if(arm64_frintts) {
                         FRINT64ZD(s0, v1);
-                        FCVTZSxD(x2, s0);
-                        STx(x2, ed, fixedaddress);
+                        VFCVTZSd(s0, s0);
+                        VST64(s0, ed, fixedaddress);
                     } else {
                         MRS_fpsr(x5);
                         BFCw(x5, FPSR_IOC, 1);   // reset IOC bit
                         MSR_fpsr(x5);
                         FRINTRRD(s0, v1, 3);
-                        FCVTZSxD(x2, s0);
+                        VFCVTZSd(s0, s0);
+                        VST64(s0, ed, fixedaddress);
                         MRS_fpsr(x5);   // get back FPSR to check the IOC bit
                         TBZ_MARK3(x5, FPSR_IOC);
                         ORRx_mask(x2, xZR, 1, 1, 0);    //0x8000000000000000
-                        MARK3;
                         STx(x2, ed, fixedaddress);
+                        MARK3;
                     }
                 }
                 X87_POP_OR_FAIL(dyn, ninst, x3);
diff --git a/src/dynarec/arm64/dynarec_arm64_df.c b/src/dynarec/arm64/dynarec_arm64_df.c
index 62bdbac7..dd03a515 100644
--- a/src/dynarec/arm64/dynarec_arm64_df.c
+++ b/src/dynarec/arm64/dynarec_arm64_df.c
@@ -356,16 +356,22 @@ uintptr_t dynarec64_DF(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                         B_MARK3(c__);
                         MARK2;
                     }
-                    MRS_fpsr(x5);
-                    BFCw(x5, FPSR_IOC, 1);   // reset IOC bit
-                    MSR_fpsr(x5);
-                    FRINTXD(s0, v1);
-                    VFCVTZSd(s0, s0);
-                    VST64(s0, wback, fixedaddress);
-                    MRS_fpsr(x5);   // get back FPSR to check the IOC bit
-                    TBZ_MARK3(x5, FPSR_IOC);
-                    ORRx_mask(x5, xZR, 1, 1, 0);    //0x8000000000000000
-                    STx(x5, wback, fixedaddress);
+                    if(arm64_frintts) {
+                        FRINT64XD(s0, v1);
+                        VFCVTZSd(s0, s0);
+                        VST64(s0, wback, fixedaddress);
+                    } else {
+                        MRS_fpsr(x5);
+                        BFCw(x5, FPSR_IOC, 1);   // reset IOC bit
+                        MSR_fpsr(x5);
+                        FRINTXD(s0, v1);
+                        VFCVTZSd(s0, s0);
+                        VST64(s0, wback, fixedaddress);
+                        MRS_fpsr(x5);   // get back FPSR to check the IOC bit
+                        TBZ_MARK3(x5, FPSR_IOC);
+                        ORRx_mask(x5, xZR, 1, 1, 0);    //0x8000000000000000
+                        STx(x5, wback, fixedaddress);
+                    }
                     MARK3;
                     #endif
                     x87_restoreround(dyn, ninst, u8);
diff --git a/src/dynarec/arm64/dynarec_arm64_functions.c b/src/dynarec/arm64/dynarec_arm64_functions.c
index 28673221..2a7a2a09 100644
--- a/src/dynarec/arm64/dynarec_arm64_functions.c
+++ b/src/dynarec/arm64/dynarec_arm64_functions.c
@@ -926,9 +926,9 @@ uint8_t mark_natflag(dynarec_arm_t* dyn, int ninst, uint8_t flag, int before)
 {
     if(dyn->insts[ninst].x64.set_flags && !before) {
         dyn->insts[ninst].set_nat_flags |= flag;
-        if(dyn->insts[ninst].x64.use_flags) {
-            dyn->insts[ninst].use_nat_flags |= flag;
-        }
+        //if(dyn->insts[ninst].x64.use_flags) {
+        //    dyn->insts[ninst].use_nat_flags |= flag;
+        //}
     } else {
         if(before)
             dyn->insts[ninst].use_nat_flags_before |= flag;
@@ -1098,7 +1098,7 @@ void updateNativeFlags(dynarec_native_t* dyn)
 {
     if(!box64_dynarec_nativeflags)
         return;
-    // backward check if native flags are used
+    // forward check if native flags are used
     for(int ninst=0; ninst<dyn->size; ++ninst)
         if(flag2native(dyn->insts[ninst].x64.gen_flags) && (dyn->insts[ninst].nat_flags_op==NAT_FLAG_OP_TOUCH)) {
             propagateNativeFlags(dyn, ninst);
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.h b/src/dynarec/arm64/dynarec_arm64_helper.h
index 2da90d59..f47ecaf7 100644
--- a/src/dynarec/arm64/dynarec_arm64_helper.h
+++ b/src/dynarec/arm64/dynarec_arm64_helper.h
@@ -950,7 +950,8 @@
     MOV32w(s2, 0b01000101); /* unordered */                                 \
     CSELw(s1, s2, s1, cVS);                                                 \
     if(v1||v2) {                                                            \
-        Bcond(cVS, 10*4);                                                   \
+        Bcond(cVS, 11*4);                                                   \
+        Bcond(cEQ, 10*4);                                                   \
         if(is_f) {                                                          \
             ORRw_mask(s4, xZR, 12, 10); /*+inf*/                            \
             FMOVwS(s2, v1);                                                 \
@@ -996,7 +997,8 @@
         CSELw(s1, s2, s1, cEQ);                                             \
         /* greater than leave 0 */                                          \
         if(s4) {                                                            \
-            Bcond(cVS, 10*4);                                               \
+            Bcond(cVS, 11*4);                                               \
+            Bcond(cEQ, 10*4);                                               \
             if(is_f) {                                                      \
                 ORRw_mask(s4, xZR, 12, 10); /*+inf*/                        \
                 FMOVwS(s2, v1);                                             \
diff --git a/src/emu/x87emu_private.h b/src/emu/x87emu_private.h
index e3f0d233..17691c49 100644
--- a/src/emu/x87emu_private.h
+++ b/src/emu/x87emu_private.h
@@ -73,7 +73,7 @@ static inline void fpu_fcom(x64emu_t* emu, double b)
         emu->sw.f.F87_C0 = 1;
         emu->sw.f.F87_C2 = 1;
         emu->sw.f.F87_C3 = 1;
-    } else if ((b==-INFINITY) || (ST0.d==INFINITY)) {
+    } else if (((b==-INFINITY) || (ST0.d==INFINITY)) && ST0.d!=b) {
         emu->sw.f.F87_C0 = 0;
         emu->sw.f.F87_C2 = 0;
         emu->sw.f.F87_C3 = 0;
@@ -104,7 +104,7 @@ static inline void fpu_fcomi(x64emu_t* emu, double b)
         SET_FLAG(F_CF);
         SET_FLAG(F_PF);
         SET_FLAG(F_ZF);
-    } else if ((b==-INFINITY) || (ST0.d==INFINITY)) {
+    } else if (((b==-INFINITY) || (ST0.d==INFINITY)) && ST0.d!=b) {
         CLEAR_FLAG(F_CF);
         CLEAR_FLAG(F_PF);
         CLEAR_FLAG(F_ZF);
diff --git a/tests/ref22.txt b/tests/ref22.txt
index 9538e7ad..15300d71 100644
--- a/tests/ref22.txt
+++ b/tests/ref22.txt
@@ -1,1224 +1,898 @@
+FUCOMI 0x0 0x0 Z--
+FUCOMPP 0x0 0x0 Z--
 FUCOMI 0x0 0x4082c00000000000 --C
 FUCOMPP 0x0 0x4082c00000000000 --C
-Rounding 0
- FRNDINT 0x0 => 0x0
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FISTP 0x0 => word: 0
- FISTP 0x4082c00000000000 => word: 258
- FISTP 0x0 => long: 0
- FISTP 0x4082c00000000000 => long: 258
- FISTP 0x0 => quad: 0
- FISTP 0x4082c00000000000 => quad: 258
- FISTTP 0x0 => word: 0
- FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x0 => long: 0
- FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x0 => quad: 0
- FISTTP 0x4082c00000000000 => quad: 258
-Rounding 1
- FRNDINT 0x0 => 0x0
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FISTP 0x0 => word: 0
- FISTP 0x4082c00000000000 => word: 258
- FISTP 0x0 => long: 0
- FISTP 0x4082c00000000000 => long: 258
- FISTP 0x0 => quad: 0
- FISTP 0x4082c00000000000 => quad: 258
- FISTTP 0x0 => word: 0
- FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x0 => long: 0
- FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x0 => quad: 0
- FISTTP 0x4082c00000000000 => quad: 258
-Rounding 2
- FRNDINT 0x0 => 0x0
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FISTP 0x0 => word: 0
- FISTP 0x4082c00000000000 => word: 258
- FISTP 0x0 => long: 0
- FISTP 0x4082c00000000000 => long: 258
- FISTP 0x0 => quad: 0
- FISTP 0x4082c00000000000 => quad: 258
- FISTTP 0x0 => word: 0
- FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x0 => long: 0
- FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x0 => quad: 0
- FISTTP 0x4082c00000000000 => quad: 258
+FUCOMI 0x0 0x8000000000000000 Z--
+FUCOMPP 0x0 0x8000000000000000 Z--
+FUCOMI 0x0 0x40dfffc000000000 --C
+FUCOMPP 0x0 0x40dfffc000000000 --C
+FUCOMI 0x0 0x40e0002000000000 --C
+FUCOMPP 0x0 0x40e0002000000000 --C
+FUCOMI 0x0 0xc0e0002000000000 ---
+FUCOMPP 0x0 0xc0e0002000000000 ---
+FUCOMI 0x0 0xc0dfffc000000000 ---
+FUCOMPP 0x0 0xc0dfffc000000000 ---
+FUCOMI 0x0 0x3ff0000000000000 --C
+FUCOMPP 0x0 0x3ff0000000000000 --C
+FUCOMI 0x0 0x3fe89d9000000000 --C
+FUCOMPP 0x0 0x3fe89d9000000000 --C
+FUCOMI 0x0 0x7ff0000000000000 --C
+FUCOMPP 0x0 0x7ff0000000000000 --C
+FUCOMI 0x0 0xfff0000000000000 ---
+FUCOMPP 0x0 0xfff0000000000000 ---
+FUCOMI 0x0 0x3ff0002ca0000000 --C
+FUCOMPP 0x0 0x3ff0002ca0000000 --C
+FUCOMI 0x0 0xaeff000025000000 ---
+FUCOMPP 0x0 0xaeff000025000000 ---
+FUCOMI 0x0 0x3ff0000050000000 --C
+FUCOMPP 0x0 0x3ff0000050000000 --C
+FUCOMI 0x0 0xc082c00000000000 ---
+FUCOMPP 0x0 0xc082c00000000000 ---
+FUCOMI 0x0 0x7ff8000000000001 ZPC
+FUCOMPP 0x0 0x7ff8000000000001 ZPC
 FUCOMI 0x4082c00000000000 0x0 ---
 FUCOMPP 0x4082c00000000000 0x0 ---
+FUCOMI 0x4082c00000000000 0x4082c00000000000 Z--
+FUCOMPP 0x4082c00000000000 0x4082c00000000000 Z--
+FUCOMI 0x4082c00000000000 0x8000000000000000 ---
+FUCOMPP 0x4082c00000000000 0x8000000000000000 ---
+FUCOMI 0x4082c00000000000 0x40dfffc000000000 --C
+FUCOMPP 0x4082c00000000000 0x40dfffc000000000 --C
+FUCOMI 0x4082c00000000000 0x40e0002000000000 --C
+FUCOMPP 0x4082c00000000000 0x40e0002000000000 --C
+FUCOMI 0x4082c00000000000 0xc0e0002000000000 ---
+FUCOMPP 0x4082c00000000000 0xc0e0002000000000 ---
+FUCOMI 0x4082c00000000000 0xc0dfffc000000000 ---
+FUCOMPP 0x4082c00000000000 0xc0dfffc000000000 ---
+FUCOMI 0x4082c00000000000 0x3ff0000000000000 ---
+FUCOMPP 0x4082c00000000000 0x3ff0000000000000 ---
+FUCOMI 0x4082c00000000000 0x3fe89d9000000000 ---
+FUCOMPP 0x4082c00000000000 0x3fe89d9000000000 ---
+FUCOMI 0x4082c00000000000 0x7ff0000000000000 --C
+FUCOMPP 0x4082c00000000000 0x7ff0000000000000 --C
+FUCOMI 0x4082c00000000000 0xfff0000000000000 ---
+FUCOMPP 0x4082c00000000000 0xfff0000000000000 ---
+FUCOMI 0x4082c00000000000 0x3ff0002ca0000000 ---
+FUCOMPP 0x4082c00000000000 0x3ff0002ca0000000 ---
+FUCOMI 0x4082c00000000000 0xaeff000025000000 ---
+FUCOMPP 0x4082c00000000000 0xaeff000025000000 ---
+FUCOMI 0x4082c00000000000 0x3ff0000050000000 ---
+FUCOMPP 0x4082c00000000000 0x3ff0000050000000 ---
+FUCOMI 0x4082c00000000000 0xc082c00000000000 ---
+FUCOMPP 0x4082c00000000000 0xc082c00000000000 ---
+FUCOMI 0x4082c00000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x4082c00000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x8000000000000000 0x0 Z--
+FUCOMPP 0x8000000000000000 0x0 Z--
+FUCOMI 0x8000000000000000 0x4082c00000000000 --C
+FUCOMPP 0x8000000000000000 0x4082c00000000000 --C
+FUCOMI 0x8000000000000000 0x8000000000000000 Z--
+FUCOMPP 0x8000000000000000 0x8000000000000000 Z--
+FUCOMI 0x8000000000000000 0x40dfffc000000000 --C
+FUCOMPP 0x8000000000000000 0x40dfffc000000000 --C
+FUCOMI 0x8000000000000000 0x40e0002000000000 --C
+FUCOMPP 0x8000000000000000 0x40e0002000000000 --C
+FUCOMI 0x8000000000000000 0xc0e0002000000000 ---
+FUCOMPP 0x8000000000000000 0xc0e0002000000000 ---
+FUCOMI 0x8000000000000000 0xc0dfffc000000000 ---
+FUCOMPP 0x8000000000000000 0xc0dfffc000000000 ---
+FUCOMI 0x8000000000000000 0x3ff0000000000000 --C
+FUCOMPP 0x8000000000000000 0x3ff0000000000000 --C
+FUCOMI 0x8000000000000000 0x3fe89d9000000000 --C
+FUCOMPP 0x8000000000000000 0x3fe89d9000000000 --C
+FUCOMI 0x8000000000000000 0x7ff0000000000000 --C
+FUCOMPP 0x8000000000000000 0x7ff0000000000000 --C
+FUCOMI 0x8000000000000000 0xfff0000000000000 ---
+FUCOMPP 0x8000000000000000 0xfff0000000000000 ---
+FUCOMI 0x8000000000000000 0x3ff0002ca0000000 --C
+FUCOMPP 0x8000000000000000 0x3ff0002ca0000000 --C
+FUCOMI 0x8000000000000000 0xaeff000025000000 ---
+FUCOMPP 0x8000000000000000 0xaeff000025000000 ---
+FUCOMI 0x8000000000000000 0x3ff0000050000000 --C
+FUCOMPP 0x8000000000000000 0x3ff0000050000000 --C
+FUCOMI 0x8000000000000000 0xc082c00000000000 ---
+FUCOMPP 0x8000000000000000 0xc082c00000000000 ---
+FUCOMI 0x8000000000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x8000000000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x40dfffc000000000 0x0 ---
+FUCOMPP 0x40dfffc000000000 0x0 ---
+FUCOMI 0x40dfffc000000000 0x4082c00000000000 ---
+FUCOMPP 0x40dfffc000000000 0x4082c00000000000 ---
+FUCOMI 0x40dfffc000000000 0x8000000000000000 ---
+FUCOMPP 0x40dfffc000000000 0x8000000000000000 ---
+FUCOMI 0x40dfffc000000000 0x40dfffc000000000 Z--
+FUCOMPP 0x40dfffc000000000 0x40dfffc000000000 Z--
+FUCOMI 0x40dfffc000000000 0x40e0002000000000 --C
+FUCOMPP 0x40dfffc000000000 0x40e0002000000000 --C
+FUCOMI 0x40dfffc000000000 0xc0e0002000000000 ---
+FUCOMPP 0x40dfffc000000000 0xc0e0002000000000 ---
+FUCOMI 0x40dfffc000000000 0xc0dfffc000000000 ---
+FUCOMPP 0x40dfffc000000000 0xc0dfffc000000000 ---
+FUCOMI 0x40dfffc000000000 0x3ff0000000000000 ---
+FUCOMPP 0x40dfffc000000000 0x3ff0000000000000 ---
+FUCOMI 0x40dfffc000000000 0x3fe89d9000000000 ---
+FUCOMPP 0x40dfffc000000000 0x3fe89d9000000000 ---
+FUCOMI 0x40dfffc000000000 0x7ff0000000000000 --C
+FUCOMPP 0x40dfffc000000000 0x7ff0000000000000 --C
+FUCOMI 0x40dfffc000000000 0xfff0000000000000 ---
+FUCOMPP 0x40dfffc000000000 0xfff0000000000000 ---
+FUCOMI 0x40dfffc000000000 0x3ff0002ca0000000 ---
+FUCOMPP 0x40dfffc000000000 0x3ff0002ca0000000 ---
+FUCOMI 0x40dfffc000000000 0xaeff000025000000 ---
+FUCOMPP 0x40dfffc000000000 0xaeff000025000000 ---
+FUCOMI 0x40dfffc000000000 0x3ff0000050000000 ---
+FUCOMPP 0x40dfffc000000000 0x3ff0000050000000 ---
+FUCOMI 0x40dfffc000000000 0xc082c00000000000 ---
+FUCOMPP 0x40dfffc000000000 0xc082c00000000000 ---
+FUCOMI 0x40dfffc000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x40dfffc000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x40e0002000000000 0x0 ---
+FUCOMPP 0x40e0002000000000 0x0 ---
+FUCOMI 0x40e0002000000000 0x4082c00000000000 ---
+FUCOMPP 0x40e0002000000000 0x4082c00000000000 ---
+FUCOMI 0x40e0002000000000 0x8000000000000000 ---
+FUCOMPP 0x40e0002000000000 0x8000000000000000 ---
+FUCOMI 0x40e0002000000000 0x40dfffc000000000 ---
+FUCOMPP 0x40e0002000000000 0x40dfffc000000000 ---
+FUCOMI 0x40e0002000000000 0x40e0002000000000 Z--
+FUCOMPP 0x40e0002000000000 0x40e0002000000000 Z--
+FUCOMI 0x40e0002000000000 0xc0e0002000000000 ---
+FUCOMPP 0x40e0002000000000 0xc0e0002000000000 ---
+FUCOMI 0x40e0002000000000 0xc0dfffc000000000 ---
+FUCOMPP 0x40e0002000000000 0xc0dfffc000000000 ---
+FUCOMI 0x40e0002000000000 0x3ff0000000000000 ---
+FUCOMPP 0x40e0002000000000 0x3ff0000000000000 ---
+FUCOMI 0x40e0002000000000 0x3fe89d9000000000 ---
+FUCOMPP 0x40e0002000000000 0x3fe89d9000000000 ---
+FUCOMI 0x40e0002000000000 0x7ff0000000000000 --C
+FUCOMPP 0x40e0002000000000 0x7ff0000000000000 --C
+FUCOMI 0x40e0002000000000 0xfff0000000000000 ---
+FUCOMPP 0x40e0002000000000 0xfff0000000000000 ---
+FUCOMI 0x40e0002000000000 0x3ff0002ca0000000 ---
+FUCOMPP 0x40e0002000000000 0x3ff0002ca0000000 ---
+FUCOMI 0x40e0002000000000 0xaeff000025000000 ---
+FUCOMPP 0x40e0002000000000 0xaeff000025000000 ---
+FUCOMI 0x40e0002000000000 0x3ff0000050000000 ---
+FUCOMPP 0x40e0002000000000 0x3ff0000050000000 ---
+FUCOMI 0x40e0002000000000 0xc082c00000000000 ---
+FUCOMPP 0x40e0002000000000 0xc082c00000000000 ---
+FUCOMI 0x40e0002000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x40e0002000000000 0x7ff8000000000001 ZPC
+FUCOMI 0xc0e0002000000000 0x0 --C
+FUCOMPP 0xc0e0002000000000 0x0 --C
+FUCOMI 0xc0e0002000000000 0x4082c00000000000 --C
+FUCOMPP 0xc0e0002000000000 0x4082c00000000000 --C
+FUCOMI 0xc0e0002000000000 0x8000000000000000 --C
+FUCOMPP 0xc0e0002000000000 0x8000000000000000 --C
+FUCOMI 0xc0e0002000000000 0x40dfffc000000000 --C
+FUCOMPP 0xc0e0002000000000 0x40dfffc000000000 --C
+FUCOMI 0xc0e0002000000000 0x40e0002000000000 --C
+FUCOMPP 0xc0e0002000000000 0x40e0002000000000 --C
+FUCOMI 0xc0e0002000000000 0xc0e0002000000000 Z--
+FUCOMPP 0xc0e0002000000000 0xc0e0002000000000 Z--
+FUCOMI 0xc0e0002000000000 0xc0dfffc000000000 --C
+FUCOMPP 0xc0e0002000000000 0xc0dfffc000000000 --C
+FUCOMI 0xc0e0002000000000 0x3ff0000000000000 --C
+FUCOMPP 0xc0e0002000000000 0x3ff0000000000000 --C
+FUCOMI 0xc0e0002000000000 0x3fe89d9000000000 --C
+FUCOMPP 0xc0e0002000000000 0x3fe89d9000000000 --C
+FUCOMI 0xc0e0002000000000 0x7ff0000000000000 --C
+FUCOMPP 0xc0e0002000000000 0x7ff0000000000000 --C
+FUCOMI 0xc0e0002000000000 0xfff0000000000000 ---
+FUCOMPP 0xc0e0002000000000 0xfff0000000000000 ---
+FUCOMI 0xc0e0002000000000 0x3ff0002ca0000000 --C
+FUCOMPP 0xc0e0002000000000 0x3ff0002ca0000000 --C
+FUCOMI 0xc0e0002000000000 0xaeff000025000000 --C
+FUCOMPP 0xc0e0002000000000 0xaeff000025000000 --C
+FUCOMI 0xc0e0002000000000 0x3ff0000050000000 --C
+FUCOMPP 0xc0e0002000000000 0x3ff0000050000000 --C
+FUCOMI 0xc0e0002000000000 0xc082c00000000000 --C
+FUCOMPP 0xc0e0002000000000 0xc082c00000000000 --C
+FUCOMI 0xc0e0002000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0xc0e0002000000000 0x7ff8000000000001 ZPC
+FUCOMI 0xc0dfffc000000000 0x0 --C
+FUCOMPP 0xc0dfffc000000000 0x0 --C
+FUCOMI 0xc0dfffc000000000 0x4082c00000000000 --C
+FUCOMPP 0xc0dfffc000000000 0x4082c00000000000 --C
+FUCOMI 0xc0dfffc000000000 0x8000000000000000 --C
+FUCOMPP 0xc0dfffc000000000 0x8000000000000000 --C
+FUCOMI 0xc0dfffc000000000 0x40dfffc000000000 --C
+FUCOMPP 0xc0dfffc000000000 0x40dfffc000000000 --C
+FUCOMI 0xc0dfffc000000000 0x40e0002000000000 --C
+FUCOMPP 0xc0dfffc000000000 0x40e0002000000000 --C
+FUCOMI 0xc0dfffc000000000 0xc0e0002000000000 ---
+FUCOMPP 0xc0dfffc000000000 0xc0e0002000000000 ---
+FUCOMI 0xc0dfffc000000000 0xc0dfffc000000000 Z--
+FUCOMPP 0xc0dfffc000000000 0xc0dfffc000000000 Z--
+FUCOMI 0xc0dfffc000000000 0x3ff0000000000000 --C
+FUCOMPP 0xc0dfffc000000000 0x3ff0000000000000 --C
+FUCOMI 0xc0dfffc000000000 0x3fe89d9000000000 --C
+FUCOMPP 0xc0dfffc000000000 0x3fe89d9000000000 --C
+FUCOMI 0xc0dfffc000000000 0x7ff0000000000000 --C
+FUCOMPP 0xc0dfffc000000000 0x7ff0000000000000 --C
+FUCOMI 0xc0dfffc000000000 0xfff0000000000000 ---
+FUCOMPP 0xc0dfffc000000000 0xfff0000000000000 ---
+FUCOMI 0xc0dfffc000000000 0x3ff0002ca0000000 --C
+FUCOMPP 0xc0dfffc000000000 0x3ff0002ca0000000 --C
+FUCOMI 0xc0dfffc000000000 0xaeff000025000000 --C
+FUCOMPP 0xc0dfffc000000000 0xaeff000025000000 --C
+FUCOMI 0xc0dfffc000000000 0x3ff0000050000000 --C
+FUCOMPP 0xc0dfffc000000000 0x3ff0000050000000 --C
+FUCOMI 0xc0dfffc000000000 0xc082c00000000000 --C
+FUCOMPP 0xc0dfffc000000000 0xc082c00000000000 --C
+FUCOMI 0xc0dfffc000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0xc0dfffc000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x3ff0000000000000 0x0 ---
+FUCOMPP 0x3ff0000000000000 0x0 ---
+FUCOMI 0x3ff0000000000000 0x4082c00000000000 --C
+FUCOMPP 0x3ff0000000000000 0x4082c00000000000 --C
+FUCOMI 0x3ff0000000000000 0x8000000000000000 ---
+FUCOMPP 0x3ff0000000000000 0x8000000000000000 ---
+FUCOMI 0x3ff0000000000000 0x40dfffc000000000 --C
+FUCOMPP 0x3ff0000000000000 0x40dfffc000000000 --C
+FUCOMI 0x3ff0000000000000 0x40e0002000000000 --C
+FUCOMPP 0x3ff0000000000000 0x40e0002000000000 --C
+FUCOMI 0x3ff0000000000000 0xc0e0002000000000 ---
+FUCOMPP 0x3ff0000000000000 0xc0e0002000000000 ---
+FUCOMI 0x3ff0000000000000 0xc0dfffc000000000 ---
+FUCOMPP 0x3ff0000000000000 0xc0dfffc000000000 ---
+FUCOMI 0x3ff0000000000000 0x3ff0000000000000 Z--
+FUCOMPP 0x3ff0000000000000 0x3ff0000000000000 Z--
+FUCOMI 0x3ff0000000000000 0x3fe89d9000000000 ---
+FUCOMPP 0x3ff0000000000000 0x3fe89d9000000000 ---
+FUCOMI 0x3ff0000000000000 0x7ff0000000000000 --C
+FUCOMPP 0x3ff0000000000000 0x7ff0000000000000 --C
+FUCOMI 0x3ff0000000000000 0xfff0000000000000 ---
+FUCOMPP 0x3ff0000000000000 0xfff0000000000000 ---
+FUCOMI 0x3ff0000000000000 0x3ff0002ca0000000 --C
+FUCOMPP 0x3ff0000000000000 0x3ff0002ca0000000 --C
+FUCOMI 0x3ff0000000000000 0xaeff000025000000 ---
+FUCOMPP 0x3ff0000000000000 0xaeff000025000000 ---
+FUCOMI 0x3ff0000000000000 0x3ff0000050000000 --C
+FUCOMPP 0x3ff0000000000000 0x3ff0000050000000 --C
+FUCOMI 0x3ff0000000000000 0xc082c00000000000 ---
+FUCOMPP 0x3ff0000000000000 0xc082c00000000000 ---
+FUCOMI 0x3ff0000000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x3ff0000000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x3fe89d9000000000 0x0 ---
+FUCOMPP 0x3fe89d9000000000 0x0 ---
+FUCOMI 0x3fe89d9000000000 0x4082c00000000000 --C
+FUCOMPP 0x3fe89d9000000000 0x4082c00000000000 --C
+FUCOMI 0x3fe89d9000000000 0x8000000000000000 ---
+FUCOMPP 0x3fe89d9000000000 0x8000000000000000 ---
+FUCOMI 0x3fe89d9000000000 0x40dfffc000000000 --C
+FUCOMPP 0x3fe89d9000000000 0x40dfffc000000000 --C
+FUCOMI 0x3fe89d9000000000 0x40e0002000000000 --C
+FUCOMPP 0x3fe89d9000000000 0x40e0002000000000 --C
+FUCOMI 0x3fe89d9000000000 0xc0e0002000000000 ---
+FUCOMPP 0x3fe89d9000000000 0xc0e0002000000000 ---
+FUCOMI 0x3fe89d9000000000 0xc0dfffc000000000 ---
+FUCOMPP 0x3fe89d9000000000 0xc0dfffc000000000 ---
+FUCOMI 0x3fe89d9000000000 0x3ff0000000000000 --C
+FUCOMPP 0x3fe89d9000000000 0x3ff0000000000000 --C
+FUCOMI 0x3fe89d9000000000 0x3fe89d9000000000 Z--
+FUCOMPP 0x3fe89d9000000000 0x3fe89d9000000000 Z--
+FUCOMI 0x3fe89d9000000000 0x7ff0000000000000 --C
+FUCOMPP 0x3fe89d9000000000 0x7ff0000000000000 --C
+FUCOMI 0x3fe89d9000000000 0xfff0000000000000 ---
+FUCOMPP 0x3fe89d9000000000 0xfff0000000000000 ---
+FUCOMI 0x3fe89d9000000000 0x3ff0002ca0000000 --C
+FUCOMPP 0x3fe89d9000000000 0x3ff0002ca0000000 --C
+FUCOMI 0x3fe89d9000000000 0xaeff000025000000 ---
+FUCOMPP 0x3fe89d9000000000 0xaeff000025000000 ---
+FUCOMI 0x3fe89d9000000000 0x3ff0000050000000 --C
+FUCOMPP 0x3fe89d9000000000 0x3ff0000050000000 --C
+FUCOMI 0x3fe89d9000000000 0xc082c00000000000 ---
+FUCOMPP 0x3fe89d9000000000 0xc082c00000000000 ---
+FUCOMI 0x3fe89d9000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x3fe89d9000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x7ff0000000000000 0x0 ---
+FUCOMPP 0x7ff0000000000000 0x0 ---
+FUCOMI 0x7ff0000000000000 0x4082c00000000000 ---
+FUCOMPP 0x7ff0000000000000 0x4082c00000000000 ---
+FUCOMI 0x7ff0000000000000 0x8000000000000000 ---
+FUCOMPP 0x7ff0000000000000 0x8000000000000000 ---
+FUCOMI 0x7ff0000000000000 0x40dfffc000000000 ---
+FUCOMPP 0x7ff0000000000000 0x40dfffc000000000 ---
+FUCOMI 0x7ff0000000000000 0x40e0002000000000 ---
+FUCOMPP 0x7ff0000000000000 0x40e0002000000000 ---
+FUCOMI 0x7ff0000000000000 0xc0e0002000000000 ---
+FUCOMPP 0x7ff0000000000000 0xc0e0002000000000 ---
+FUCOMI 0x7ff0000000000000 0xc0dfffc000000000 ---
+FUCOMPP 0x7ff0000000000000 0xc0dfffc000000000 ---
+FUCOMI 0x7ff0000000000000 0x3ff0000000000000 ---
+FUCOMPP 0x7ff0000000000000 0x3ff0000000000000 ---
+FUCOMI 0x7ff0000000000000 0x3fe89d9000000000 ---
+FUCOMPP 0x7ff0000000000000 0x3fe89d9000000000 ---
+FUCOMI 0x7ff0000000000000 0x7ff0000000000000 Z--
+FUCOMPP 0x7ff0000000000000 0x7ff0000000000000 Z--
+FUCOMI 0x7ff0000000000000 0xfff0000000000000 ---
+FUCOMPP 0x7ff0000000000000 0xfff0000000000000 ---
+FUCOMI 0x7ff0000000000000 0x3ff0002ca0000000 ---
+FUCOMPP 0x7ff0000000000000 0x3ff0002ca0000000 ---
+FUCOMI 0x7ff0000000000000 0xaeff000025000000 ---
+FUCOMPP 0x7ff0000000000000 0xaeff000025000000 ---
+FUCOMI 0x7ff0000000000000 0x3ff0000050000000 ---
+FUCOMPP 0x7ff0000000000000 0x3ff0000050000000 ---
+FUCOMI 0x7ff0000000000000 0xc082c00000000000 ---
+FUCOMPP 0x7ff0000000000000 0xc082c00000000000 ---
+FUCOMI 0x7ff0000000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x7ff0000000000000 0x7ff8000000000001 ZPC
+FUCOMI 0xfff0000000000000 0x0 --C
+FUCOMPP 0xfff0000000000000 0x0 --C
+FUCOMI 0xfff0000000000000 0x4082c00000000000 --C
+FUCOMPP 0xfff0000000000000 0x4082c00000000000 --C
+FUCOMI 0xfff0000000000000 0x8000000000000000 --C
+FUCOMPP 0xfff0000000000000 0x8000000000000000 --C
+FUCOMI 0xfff0000000000000 0x40dfffc000000000 --C
+FUCOMPP 0xfff0000000000000 0x40dfffc000000000 --C
+FUCOMI 0xfff0000000000000 0x40e0002000000000 --C
+FUCOMPP 0xfff0000000000000 0x40e0002000000000 --C
+FUCOMI 0xfff0000000000000 0xc0e0002000000000 --C
+FUCOMPP 0xfff0000000000000 0xc0e0002000000000 --C
+FUCOMI 0xfff0000000000000 0xc0dfffc000000000 --C
+FUCOMPP 0xfff0000000000000 0xc0dfffc000000000 --C
+FUCOMI 0xfff0000000000000 0x3ff0000000000000 --C
+FUCOMPP 0xfff0000000000000 0x3ff0000000000000 --C
+FUCOMI 0xfff0000000000000 0x3fe89d9000000000 --C
+FUCOMPP 0xfff0000000000000 0x3fe89d9000000000 --C
+FUCOMI 0xfff0000000000000 0x7ff0000000000000 --C
+FUCOMPP 0xfff0000000000000 0x7ff0000000000000 --C
+FUCOMI 0xfff0000000000000 0xfff0000000000000 Z--
+FUCOMPP 0xfff0000000000000 0xfff0000000000000 Z--
+FUCOMI 0xfff0000000000000 0x3ff0002ca0000000 --C
+FUCOMPP 0xfff0000000000000 0x3ff0002ca0000000 --C
+FUCOMI 0xfff0000000000000 0xaeff000025000000 --C
+FUCOMPP 0xfff0000000000000 0xaeff000025000000 --C
+FUCOMI 0xfff0000000000000 0x3ff0000050000000 --C
+FUCOMPP 0xfff0000000000000 0x3ff0000050000000 --C
+FUCOMI 0xfff0000000000000 0xc082c00000000000 --C
+FUCOMPP 0xfff0000000000000 0xc082c00000000000 --C
+FUCOMI 0xfff0000000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0xfff0000000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x3ff0002ca0000000 0x0 ---
+FUCOMPP 0x3ff0002ca0000000 0x0 ---
+FUCOMI 0x3ff0002ca0000000 0x4082c00000000000 --C
+FUCOMPP 0x3ff0002ca0000000 0x4082c00000000000 --C
+FUCOMI 0x3ff0002ca0000000 0x8000000000000000 ---
+FUCOMPP 0x3ff0002ca0000000 0x8000000000000000 ---
+FUCOMI 0x3ff0002ca0000000 0x40dfffc000000000 --C
+FUCOMPP 0x3ff0002ca0000000 0x40dfffc000000000 --C
+FUCOMI 0x3ff0002ca0000000 0x40e0002000000000 --C
+FUCOMPP 0x3ff0002ca0000000 0x40e0002000000000 --C
+FUCOMI 0x3ff0002ca0000000 0xc0e0002000000000 ---
+FUCOMPP 0x3ff0002ca0000000 0xc0e0002000000000 ---
+FUCOMI 0x3ff0002ca0000000 0xc0dfffc000000000 ---
+FUCOMPP 0x3ff0002ca0000000 0xc0dfffc000000000 ---
+FUCOMI 0x3ff0002ca0000000 0x3ff0000000000000 ---
+FUCOMPP 0x3ff0002ca0000000 0x3ff0000000000000 ---
+FUCOMI 0x3ff0002ca0000000 0x3fe89d9000000000 ---
+FUCOMPP 0x3ff0002ca0000000 0x3fe89d9000000000 ---
+FUCOMI 0x3ff0002ca0000000 0x7ff0000000000000 --C
+FUCOMPP 0x3ff0002ca0000000 0x7ff0000000000000 --C
+FUCOMI 0x3ff0002ca0000000 0xfff0000000000000 ---
+FUCOMPP 0x3ff0002ca0000000 0xfff0000000000000 ---
+FUCOMI 0x3ff0002ca0000000 0x3ff0002ca0000000 Z--
+FUCOMPP 0x3ff0002ca0000000 0x3ff0002ca0000000 Z--
+FUCOMI 0x3ff0002ca0000000 0xaeff000025000000 ---
+FUCOMPP 0x3ff0002ca0000000 0xaeff000025000000 ---
+FUCOMI 0x3ff0002ca0000000 0x3ff0000050000000 ---
+FUCOMPP 0x3ff0002ca0000000 0x3ff0000050000000 ---
+FUCOMI 0x3ff0002ca0000000 0xc082c00000000000 ---
+FUCOMPP 0x3ff0002ca0000000 0xc082c00000000000 ---
+FUCOMI 0x3ff0002ca0000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x3ff0002ca0000000 0x7ff8000000000001 ZPC
+FUCOMI 0xaeff000025000000 0x0 --C
+FUCOMPP 0xaeff000025000000 0x0 --C
+FUCOMI 0xaeff000025000000 0x4082c00000000000 --C
+FUCOMPP 0xaeff000025000000 0x4082c00000000000 --C
+FUCOMI 0xaeff000025000000 0x8000000000000000 --C
+FUCOMPP 0xaeff000025000000 0x8000000000000000 --C
+FUCOMI 0xaeff000025000000 0x40dfffc000000000 --C
+FUCOMPP 0xaeff000025000000 0x40dfffc000000000 --C
+FUCOMI 0xaeff000025000000 0x40e0002000000000 --C
+FUCOMPP 0xaeff000025000000 0x40e0002000000000 --C
+FUCOMI 0xaeff000025000000 0xc0e0002000000000 ---
+FUCOMPP 0xaeff000025000000 0xc0e0002000000000 ---
+FUCOMI 0xaeff000025000000 0xc0dfffc000000000 ---
+FUCOMPP 0xaeff000025000000 0xc0dfffc000000000 ---
+FUCOMI 0xaeff000025000000 0x3ff0000000000000 --C
+FUCOMPP 0xaeff000025000000 0x3ff0000000000000 --C
+FUCOMI 0xaeff000025000000 0x3fe89d9000000000 --C
+FUCOMPP 0xaeff000025000000 0x3fe89d9000000000 --C
+FUCOMI 0xaeff000025000000 0x7ff0000000000000 --C
+FUCOMPP 0xaeff000025000000 0x7ff0000000000000 --C
+FUCOMI 0xaeff000025000000 0xfff0000000000000 ---
+FUCOMPP 0xaeff000025000000 0xfff0000000000000 ---
+FUCOMI 0xaeff000025000000 0x3ff0002ca0000000 --C
+FUCOMPP 0xaeff000025000000 0x3ff0002ca0000000 --C
+FUCOMI 0xaeff000025000000 0xaeff000025000000 Z--
+FUCOMPP 0xaeff000025000000 0xaeff000025000000 Z--
+FUCOMI 0xaeff000025000000 0x3ff0000050000000 --C
+FUCOMPP 0xaeff000025000000 0x3ff0000050000000 --C
+FUCOMI 0xaeff000025000000 0xc082c00000000000 ---
+FUCOMPP 0xaeff000025000000 0xc082c00000000000 ---
+FUCOMI 0xaeff000025000000 0x7ff8000000000001 ZPC
+FUCOMPP 0xaeff000025000000 0x7ff8000000000001 ZPC
+FUCOMI 0x3ff0000050000000 0x0 ---
+FUCOMPP 0x3ff0000050000000 0x0 ---
+FUCOMI 0x3ff0000050000000 0x4082c00000000000 --C
+FUCOMPP 0x3ff0000050000000 0x4082c00000000000 --C
+FUCOMI 0x3ff0000050000000 0x8000000000000000 ---
+FUCOMPP 0x3ff0000050000000 0x8000000000000000 ---
+FUCOMI 0x3ff0000050000000 0x40dfffc000000000 --C
+FUCOMPP 0x3ff0000050000000 0x40dfffc000000000 --C
+FUCOMI 0x3ff0000050000000 0x40e0002000000000 --C
+FUCOMPP 0x3ff0000050000000 0x40e0002000000000 --C
+FUCOMI 0x3ff0000050000000 0xc0e0002000000000 ---
+FUCOMPP 0x3ff0000050000000 0xc0e0002000000000 ---
+FUCOMI 0x3ff0000050000000 0xc0dfffc000000000 ---
+FUCOMPP 0x3ff0000050000000 0xc0dfffc000000000 ---
+FUCOMI 0x3ff0000050000000 0x3ff0000000000000 ---
+FUCOMPP 0x3ff0000050000000 0x3ff0000000000000 ---
+FUCOMI 0x3ff0000050000000 0x3fe89d9000000000 ---
+FUCOMPP 0x3ff0000050000000 0x3fe89d9000000000 ---
+FUCOMI 0x3ff0000050000000 0x7ff0000000000000 --C
+FUCOMPP 0x3ff0000050000000 0x7ff0000000000000 --C
+FUCOMI 0x3ff0000050000000 0xfff0000000000000 ---
+FUCOMPP 0x3ff0000050000000 0xfff0000000000000 ---
+FUCOMI 0x3ff0000050000000 0x3ff0002ca0000000 --C
+FUCOMPP 0x3ff0000050000000 0x3ff0002ca0000000 --C
+FUCOMI 0x3ff0000050000000 0xaeff000025000000 ---
+FUCOMPP 0x3ff0000050000000 0xaeff000025000000 ---
+FUCOMI 0x3ff0000050000000 0x3ff0000050000000 Z--
+FUCOMPP 0x3ff0000050000000 0x3ff0000050000000 Z--
+FUCOMI 0x3ff0000050000000 0xc082c00000000000 ---
+FUCOMPP 0x3ff0000050000000 0xc082c00000000000 ---
+FUCOMI 0x3ff0000050000000 0x7ff8000000000001 ZPC
+FUCOMPP 0x3ff0000050000000 0x7ff8000000000001 ZPC
+FUCOMI 0xc082c00000000000 0x0 --C
+FUCOMPP 0xc082c00000000000 0x0 --C
+FUCOMI 0xc082c00000000000 0x4082c00000000000 --C
+FUCOMPP 0xc082c00000000000 0x4082c00000000000 --C
+FUCOMI 0xc082c00000000000 0x8000000000000000 --C
+FUCOMPP 0xc082c00000000000 0x8000000000000000 --C
+FUCOMI 0xc082c00000000000 0x40dfffc000000000 --C
+FUCOMPP 0xc082c00000000000 0x40dfffc000000000 --C
+FUCOMI 0xc082c00000000000 0x40e0002000000000 --C
+FUCOMPP 0xc082c00000000000 0x40e0002000000000 --C
+FUCOMI 0xc082c00000000000 0xc0e0002000000000 ---
+FUCOMPP 0xc082c00000000000 0xc0e0002000000000 ---
+FUCOMI 0xc082c00000000000 0xc0dfffc000000000 ---
+FUCOMPP 0xc082c00000000000 0xc0dfffc000000000 ---
+FUCOMI 0xc082c00000000000 0x3ff0000000000000 --C
+FUCOMPP 0xc082c00000000000 0x3ff0000000000000 --C
+FUCOMI 0xc082c00000000000 0x3fe89d9000000000 --C
+FUCOMPP 0xc082c00000000000 0x3fe89d9000000000 --C
+FUCOMI 0xc082c00000000000 0x7ff0000000000000 --C
+FUCOMPP 0xc082c00000000000 0x7ff0000000000000 --C
+FUCOMI 0xc082c00000000000 0xfff0000000000000 ---
+FUCOMPP 0xc082c00000000000 0xfff0000000000000 ---
+FUCOMI 0xc082c00000000000 0x3ff0002ca0000000 --C
+FUCOMPP 0xc082c00000000000 0x3ff0002ca0000000 --C
+FUCOMI 0xc082c00000000000 0xaeff000025000000 --C
+FUCOMPP 0xc082c00000000000 0xaeff000025000000 --C
+FUCOMI 0xc082c00000000000 0x3ff0000050000000 --C
+FUCOMPP 0xc082c00000000000 0x3ff0000050000000 --C
+FUCOMI 0xc082c00000000000 0xc082c00000000000 Z--
+FUCOMPP 0xc082c00000000000 0xc082c00000000000 Z--
+FUCOMI 0xc082c00000000000 0x7ff8000000000001 ZPC
+FUCOMPP 0xc082c00000000000 0x7ff8000000000001 ZPC
+FUCOMI 0x7ff8000000000001 0x0 ZPC
+FUCOMPP 0x7ff8000000000001 0x0 ZPC
+FUCOMI 0x7ff8000000000001 0x4082c00000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x4082c00000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x8000000000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x8000000000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x40dfffc000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x40dfffc000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x40e0002000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x40e0002000000000 ZPC
+FUCOMI 0x7ff8000000000001 0xc0e0002000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0xc0e0002000000000 ZPC
+FUCOMI 0x7ff8000000000001 0xc0dfffc000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0xc0dfffc000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x3ff0000000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x3ff0000000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x3fe89d9000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x3fe89d9000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x7ff0000000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x7ff0000000000000 ZPC
+FUCOMI 0x7ff8000000000001 0xfff0000000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0xfff0000000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x3ff0002ca0000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x3ff0002ca0000000 ZPC
+FUCOMI 0x7ff8000000000001 0xaeff000025000000 ZPC
+FUCOMPP 0x7ff8000000000001 0xaeff000025000000 ZPC
+FUCOMI 0x7ff8000000000001 0x3ff0000050000000 ZPC
+FUCOMPP 0x7ff8000000000001 0x3ff0000050000000 ZPC
+FUCOMI 0x7ff8000000000001 0xc082c00000000000 ZPC
+FUCOMPP 0x7ff8000000000001 0xc082c00000000000 ZPC
+FUCOMI 0x7ff8000000000001 0x7ff8000000000001 ZPC
+FUCOMPP 0x7ff8000000000001 0x7ff8000000000001 ZPC
 Rounding 0
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
  FRNDINT 0x0 => 0x0
- FISTP 0x4082c00000000000 => word: 258
  FISTP 0x0 => word: 0
- FISTP 0x4082c00000000000 => long: 258
  FISTP 0x0 => long: 0
- FISTP 0x4082c00000000000 => quad: 258
  FISTP 0x0 => quad: 0
- FISTTP 0x4082c00000000000 => word: 258
  FISTTP 0x0 => word: 0
- FISTTP 0x4082c00000000000 => long: 258
  FISTTP 0x0 => long: 0
- FISTTP 0x4082c00000000000 => quad: 258
  FISTTP 0x0 => quad: 0
 Rounding 1
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
  FRNDINT 0x0 => 0x0
- FISTP 0x4082c00000000000 => word: 258
  FISTP 0x0 => word: 0
- FISTP 0x4082c00000000000 => long: 258
  FISTP 0x0 => long: 0
- FISTP 0x4082c00000000000 => quad: 258
  FISTP 0x0 => quad: 0
- FISTTP 0x4082c00000000000 => word: 258
  FISTTP 0x0 => word: 0
- FISTTP 0x4082c00000000000 => long: 258
  FISTTP 0x0 => long: 0
- FISTTP 0x4082c00000000000 => quad: 258
  FISTTP 0x0 => quad: 0
 Rounding 2
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
  FRNDINT 0x0 => 0x0
- FISTP 0x4082c00000000000 => word: 258
  FISTP 0x0 => word: 0
- FISTP 0x4082c00000000000 => long: 258
  FISTP 0x0 => long: 0
- FISTP 0x4082c00000000000 => quad: 258
  FISTP 0x0 => quad: 0
- FISTTP 0x4082c00000000000 => word: 258
  FISTTP 0x0 => word: 0
- FISTTP 0x4082c00000000000 => long: 258
  FISTTP 0x0 => long: 0
- FISTTP 0x4082c00000000000 => quad: 258
  FISTTP 0x0 => quad: 0
-FUCOMI 0x8000000000000000 0x4082c00000000000 --C
-FUCOMPP 0x8000000000000000 0x4082c00000000000 --C
 Rounding 0
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x4082c00000000000 => word: 258
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x4082c00000000000 => long: 258
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x4082c00000000000 => quad: 258
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x4082c00000000000 => quad: 258
-Rounding 1
- FRNDINT 0x8000000000000000 => 0x8000000000000000
  FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FISTP 0x8000000000000000 => word: 0
  FISTP 0x4082c00000000000 => word: 258
- FISTP 0x8000000000000000 => long: 0
  FISTP 0x4082c00000000000 => long: 258
- FISTP 0x8000000000000000 => quad: 0
  FISTP 0x4082c00000000000 => quad: 258
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x4082c00000000000 => quad: 258
-Rounding 2
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x4082c00000000000 => word: 258
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x4082c00000000000 => long: 258
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x4082c00000000000 => quad: 258
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x4082c00000000000 => quad: 258
-FUCOMI 0x4082c00000000000 0x8000000000000000 ---
-FUCOMPP 0x4082c00000000000 0x8000000000000000 ---
-Rounding 0
- FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FISTP 0x4082c00000000000 => word: 258
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x4082c00000000000 => long: 258
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x4082c00000000000 => quad: 258
- FISTP 0x8000000000000000 => quad: 0
  FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x8000000000000000 => word: 0
  FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x8000000000000000 => long: 0
  FISTTP 0x4082c00000000000 => quad: 258
- FISTTP 0x8000000000000000 => quad: 0
 Rounding 1
  FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FRNDINT 0x8000000000000000 => 0x8000000000000000
  FISTP 0x4082c00000000000 => word: 258
- FISTP 0x8000000000000000 => word: 0
  FISTP 0x4082c00000000000 => long: 258
- FISTP 0x8000000000000000 => long: 0
  FISTP 0x4082c00000000000 => quad: 258
- FISTP 0x8000000000000000 => quad: 0
  FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x8000000000000000 => word: 0
  FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x8000000000000000 => long: 0
  FISTTP 0x4082c00000000000 => quad: 258
- FISTTP 0x8000000000000000 => quad: 0
 Rounding 2
  FRNDINT 0x4082c00000000000 => 0x4082c00000000000
- FRNDINT 0x8000000000000000 => 0x8000000000000000
  FISTP 0x4082c00000000000 => word: 258
- FISTP 0x8000000000000000 => word: 0
  FISTP 0x4082c00000000000 => long: 258
- FISTP 0x8000000000000000 => long: 0
  FISTP 0x4082c00000000000 => quad: 258
- FISTP 0x8000000000000000 => quad: 0
  FISTTP 0x4082c00000000000 => word: 258
- FISTTP 0x8000000000000000 => word: 0
  FISTTP 0x4082c00000000000 => long: 258
- FISTTP 0x8000000000000000 => long: 0
  FISTTP 0x4082c00000000000 => quad: 258
- FISTTP 0x8000000000000000 => quad: 0
-FUCOMI 0x8000000000000000 0x0 Z--
-FUCOMPP 0x8000000000000000 0x0 Z--
-Rounding 0
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x0 => 0x0
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x0 => word: 0
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x0 => long: 0
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x0 => quad: 0
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x0 => word: 0
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x0 => long: 0
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x0 => quad: 0
-Rounding 1
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x0 => 0x0
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x0 => word: 0
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x0 => long: 0
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x0 => quad: 0
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x0 => word: 0
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x0 => long: 0
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x0 => quad: 0
-Rounding 2
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x0 => 0x0
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x0 => word: 0
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x0 => long: 0
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x0 => quad: 0
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x0 => word: 0
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x0 => long: 0
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x0 => quad: 0
-FUCOMI 0x0 0x8000000000000000 Z--
-FUCOMPP 0x0 0x8000000000000000 Z--
 Rounding 0
- FRNDINT 0x0 => 0x0
  FRNDINT 0x8000000000000000 => 0x8000000000000000
- FISTP 0x0 => word: 0
  FISTP 0x8000000000000000 => word: 0
- FISTP 0x0 => long: 0
  FISTP 0x8000000000000000 => long: 0
- FISTP 0x0 => quad: 0
  FISTP 0x8000000000000000 => quad: 0
- FISTTP 0x0 => word: 0
  FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x0 => long: 0
  FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x0 => quad: 0
  FISTTP 0x8000000000000000 => quad: 0
 Rounding 1
- FRNDINT 0x0 => 0x0
  FRNDINT 0x8000000000000000 => 0x8000000000000000
- FISTP 0x0 => word: 0
  FISTP 0x8000000000000000 => word: 0
- FISTP 0x0 => long: 0
  FISTP 0x8000000000000000 => long: 0
- FISTP 0x0 => quad: 0
  FISTP 0x8000000000000000 => quad: 0
- FISTTP 0x0 => word: 0
  FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x0 => long: 0
  FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x0 => quad: 0
  FISTTP 0x8000000000000000 => quad: 0
 Rounding 2
- FRNDINT 0x0 => 0x0
  FRNDINT 0x8000000000000000 => 0x8000000000000000
- FISTP 0x0 => word: 0
  FISTP 0x8000000000000000 => word: 0
- FISTP 0x0 => long: 0
  FISTP 0x8000000000000000 => long: 0
- FISTP 0x0 => quad: 0
  FISTP 0x8000000000000000 => quad: 0
- FISTTP 0x0 => word: 0
  FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x0 => long: 0
  FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x0 => quad: 0
  FISTTP 0x8000000000000000 => quad: 0
-FUCOMI 0x40dfffc000000000 0x40e0002000000000 --C
-FUCOMPP 0x40dfffc000000000 0x40e0002000000000 --C
 Rounding 0
  FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000
- FRNDINT 0x40e0002000000000 => 0x40e0002000000000
  FISTP 0x40dfffc000000000 => word: 7fff
- FISTP 0x40e0002000000000 => word: 8000
  FISTP 0x40dfffc000000000 => long: 7fff
- FISTP 0x40e0002000000000 => long: 8001
  FISTP 0x40dfffc000000000 => quad: 7fff
- FISTP 0x40e0002000000000 => quad: 8001
  FISTTP 0x40dfffc000000000 => word: 7fff
- FISTTP 0x40e0002000000000 => word: 8000
  FISTTP 0x40dfffc000000000 => long: 7fff
- FISTTP 0x40e0002000000000 => long: 8001
  FISTTP 0x40dfffc000000000 => quad: 7fff
- FISTTP 0x40e0002000000000 => quad: 8001
 Rounding 1
  FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000
- FRNDINT 0x40e0002000000000 => 0x40e0002000000000
  FISTP 0x40dfffc000000000 => word: 7fff
- FISTP 0x40e0002000000000 => word: 8000
  FISTP 0x40dfffc000000000 => long: 7fff
- FISTP 0x40e0002000000000 => long: 8001
  FISTP 0x40dfffc000000000 => quad: 7fff
- FISTP 0x40e0002000000000 => quad: 8001
  FISTTP 0x40dfffc000000000 => word: 7fff
- FISTTP 0x40e0002000000000 => word: 8000
  FISTTP 0x40dfffc000000000 => long: 7fff
- FISTTP 0x40e0002000000000 => long: 8001
  FISTTP 0x40dfffc000000000 => quad: 7fff
- FISTTP 0x40e0002000000000 => quad: 8001
 Rounding 2
  FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000
- FRNDINT 0x40e0002000000000 => 0x40e0002000000000
  FISTP 0x40dfffc000000000 => word: 7fff
- FISTP 0x40e0002000000000 => word: 8000
  FISTP 0x40dfffc000000000 => long: 7fff
- FISTP 0x40e0002000000000 => long: 8001
  FISTP 0x40dfffc000000000 => quad: 7fff
- FISTP 0x40e0002000000000 => quad: 8001
  FISTTP 0x40dfffc000000000 => word: 7fff
- FISTTP 0x40e0002000000000 => word: 8000
  FISTTP 0x40dfffc000000000 => long: 7fff
- FISTTP 0x40e0002000000000 => long: 8001
  FISTTP 0x40dfffc000000000 => quad: 7fff
- FISTTP 0x40e0002000000000 => quad: 8001
-FUCOMI 0x40e0002000000000 0x40dfffc000000000 ---
-FUCOMPP 0x40e0002000000000 0x40dfffc000000000 ---
 Rounding 0
  FRNDINT 0x40e0002000000000 => 0x40e0002000000000
- FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000
  FISTP 0x40e0002000000000 => word: 8000
- FISTP 0x40dfffc000000000 => word: 7fff
  FISTP 0x40e0002000000000 => long: 8001
- FISTP 0x40dfffc000000000 => long: 7fff
  FISTP 0x40e0002000000000 => quad: 8001
- FISTP 0x40dfffc000000000 => quad: 7fff
  FISTTP 0x40e0002000000000 => word: 8000
- FISTTP 0x40dfffc000000000 => word: 7fff
  FISTTP 0x40e0002000000000 => long: 8001
- FISTTP 0x40dfffc000000000 => long: 7fff
  FISTTP 0x40e0002000000000 => quad: 8001
- FISTTP 0x40dfffc000000000 => quad: 7fff
 Rounding 1
  FRNDINT 0x40e0002000000000 => 0x40e0002000000000
- FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000
  FISTP 0x40e0002000000000 => word: 8000
- FISTP 0x40dfffc000000000 => word: 7fff
  FISTP 0x40e0002000000000 => long: 8001
- FISTP 0x40dfffc000000000 => long: 7fff
  FISTP 0x40e0002000000000 => quad: 8001
- FISTP 0x40dfffc000000000 => quad: 7fff
  FISTTP 0x40e0002000000000 => word: 8000
- FISTTP 0x40dfffc000000000 => word: 7fff
  FISTTP 0x40e0002000000000 => long: 8001
- FISTTP 0x40dfffc000000000 => long: 7fff
  FISTTP 0x40e0002000000000 => quad: 8001
- FISTTP 0x40dfffc000000000 => quad: 7fff
 Rounding 2
  FRNDINT 0x40e0002000000000 => 0x40e0002000000000
- FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000
  FISTP 0x40e0002000000000 => word: 8000
- FISTP 0x40dfffc000000000 => word: 7fff
  FISTP 0x40e0002000000000 => long: 8001
- FISTP 0x40dfffc000000000 => long: 7fff
  FISTP 0x40e0002000000000 => quad: 8001
- FISTP 0x40dfffc000000000 => quad: 7fff
  FISTTP 0x40e0002000000000 => word: 8000
- FISTTP 0x40dfffc000000000 => word: 7fff
  FISTTP 0x40e0002000000000 => long: 8001
- FISTTP 0x40dfffc000000000 => long: 7fff
  FISTTP 0x40e0002000000000 => quad: 8001
- FISTTP 0x40dfffc000000000 => quad: 7fff
-FUCOMI 0xc0e0002000000000 0xc0dfffc000000000 --C
-FUCOMPP 0xc0e0002000000000 0xc0dfffc000000000 --C
 Rounding 0
  FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000
- FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000
  FISTP 0xc0e0002000000000 => word: 8000
- FISTP 0xc0dfffc000000000 => word: 8001
  FISTP 0xc0e0002000000000 => long: ffff7fff
- FISTP 0xc0dfffc000000000 => long: ffff8001
  FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff
- FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001
  FISTTP 0xc0e0002000000000 => word: 8000
- FISTTP 0xc0dfffc000000000 => word: 8001
  FISTTP 0xc0e0002000000000 => long: ffff7fff
- FISTTP 0xc0dfffc000000000 => long: ffff8001
  FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff
- FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001
 Rounding 1
  FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000
- FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000
  FISTP 0xc0e0002000000000 => word: 8000
- FISTP 0xc0dfffc000000000 => word: 8001
  FISTP 0xc0e0002000000000 => long: ffff7fff
- FISTP 0xc0dfffc000000000 => long: ffff8001
  FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff
- FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001
  FISTTP 0xc0e0002000000000 => word: 8000
- FISTTP 0xc0dfffc000000000 => word: 8001
  FISTTP 0xc0e0002000000000 => long: ffff7fff
- FISTTP 0xc0dfffc000000000 => long: ffff8001
  FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff
- FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001
 Rounding 2
  FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000
- FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000
  FISTP 0xc0e0002000000000 => word: 8000
- FISTP 0xc0dfffc000000000 => word: 8001
  FISTP 0xc0e0002000000000 => long: ffff7fff
- FISTP 0xc0dfffc000000000 => long: ffff8001
  FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff
- FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001
  FISTTP 0xc0e0002000000000 => word: 8000
- FISTTP 0xc0dfffc000000000 => word: 8001
  FISTTP 0xc0e0002000000000 => long: ffff7fff
- FISTTP 0xc0dfffc000000000 => long: ffff8001
  FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff
- FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001
-FUCOMI 0xc0dfffc000000000 0xc0e0002000000000 ---
-FUCOMPP 0xc0dfffc000000000 0xc0e0002000000000 ---
 Rounding 0
  FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000
- FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000
  FISTP 0xc0dfffc000000000 => word: 8001
- FISTP 0xc0e0002000000000 => word: 8000
  FISTP 0xc0dfffc000000000 => long: ffff8001
- FISTP 0xc0e0002000000000 => long: ffff7fff
  FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001
- FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff
  FISTTP 0xc0dfffc000000000 => word: 8001
- FISTTP 0xc0e0002000000000 => word: 8000
  FISTTP 0xc0dfffc000000000 => long: ffff8001
- FISTTP 0xc0e0002000000000 => long: ffff7fff
  FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001
- FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff
 Rounding 1
  FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000
- FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000
  FISTP 0xc0dfffc000000000 => word: 8001
- FISTP 0xc0e0002000000000 => word: 8000
  FISTP 0xc0dfffc000000000 => long: ffff8001
- FISTP 0xc0e0002000000000 => long: ffff7fff
  FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001
- FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff
  FISTTP 0xc0dfffc000000000 => word: 8001
- FISTTP 0xc0e0002000000000 => word: 8000
  FISTTP 0xc0dfffc000000000 => long: ffff8001
- FISTTP 0xc0e0002000000000 => long: ffff7fff
  FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001
- FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff
 Rounding 2
  FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000
- FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000
  FISTP 0xc0dfffc000000000 => word: 8001
- FISTP 0xc0e0002000000000 => word: 8000
  FISTP 0xc0dfffc000000000 => long: ffff8001
- FISTP 0xc0e0002000000000 => long: ffff7fff
  FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001
- FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff
  FISTTP 0xc0dfffc000000000 => word: 8001
- FISTTP 0xc0e0002000000000 => word: 8000
  FISTTP 0xc0dfffc000000000 => long: ffff8001
- FISTTP 0xc0e0002000000000 => long: ffff7fff
  FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001
- FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff
-FUCOMI 0x8000000000000000 0x3ff0000000000000 --C
-FUCOMPP 0x8000000000000000 0x3ff0000000000000 --C
-Rounding 0
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => quad: 1
-Rounding 1
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => quad: 1
-Rounding 2
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x8000000000000000 => quad: 0
- FISTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x8000000000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => quad: 1
-FUCOMI 0x3ff0000000000000 0x8000000000000000 ---
-FUCOMPP 0x3ff0000000000000 0x8000000000000000 ---
-Rounding 0
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x8000000000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x8000000000000000 => quad: 0
-Rounding 1
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x8000000000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x8000000000000000 => quad: 0
-Rounding 2
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x8000000000000000 => 0x8000000000000000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x8000000000000000 => word: 0
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x8000000000000000 => long: 0
- FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x8000000000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x8000000000000000 => word: 0
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x8000000000000000 => long: 0
- FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x8000000000000000 => quad: 0
-FUCOMI 0x3ff0000000000000 0x3fe89d9000000000 ---
-FUCOMPP 0x3ff0000000000000 0x3fe89d9000000000 ---
 Rounding 0
  FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000
  FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x3fe89d9000000000 => word: 1
  FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x3fe89d9000000000 => long: 1
  FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x3fe89d9000000000 => quad: 1
  FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x3fe89d9000000000 => word: 0
  FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x3fe89d9000000000 => long: 0
  FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x3fe89d9000000000 => quad: 0
 Rounding 1
  FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x3fe89d9000000000 => 0x0
  FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x3fe89d9000000000 => word: 0
  FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x3fe89d9000000000 => long: 0
  FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x3fe89d9000000000 => quad: 0
  FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x3fe89d9000000000 => word: 0
  FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x3fe89d9000000000 => long: 0
  FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x3fe89d9000000000 => quad: 0
 Rounding 2
  FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000
  FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x3fe89d9000000000 => word: 1
  FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x3fe89d9000000000 => long: 1
  FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x3fe89d9000000000 => quad: 1
  FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x3fe89d9000000000 => word: 0
  FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x3fe89d9000000000 => long: 0
  FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x3fe89d9000000000 => quad: 0
-FUCOMI 0x3fe89d9000000000 0x3ff0000000000000 --C
-FUCOMPP 0x3fe89d9000000000 0x3ff0000000000000 --C
 Rounding 0
  FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
  FISTP 0x3fe89d9000000000 => word: 1
- FISTP 0x3ff0000000000000 => word: 1
  FISTP 0x3fe89d9000000000 => long: 1
- FISTP 0x3ff0000000000000 => long: 1
  FISTP 0x3fe89d9000000000 => quad: 1
- FISTP 0x3ff0000000000000 => quad: 1
  FISTTP 0x3fe89d9000000000 => word: 0
- FISTTP 0x3ff0000000000000 => word: 1
  FISTTP 0x3fe89d9000000000 => long: 0
- FISTTP 0x3ff0000000000000 => long: 1
  FISTTP 0x3fe89d9000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => quad: 1
 Rounding 1
  FRNDINT 0x3fe89d9000000000 => 0x0
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
  FISTP 0x3fe89d9000000000 => word: 0
- FISTP 0x3ff0000000000000 => word: 1
  FISTP 0x3fe89d9000000000 => long: 0
- FISTP 0x3ff0000000000000 => long: 1
  FISTP 0x3fe89d9000000000 => quad: 0
- FISTP 0x3ff0000000000000 => quad: 1
  FISTTP 0x3fe89d9000000000 => word: 0
- FISTTP 0x3ff0000000000000 => word: 1
  FISTTP 0x3fe89d9000000000 => long: 0
- FISTTP 0x3ff0000000000000 => long: 1
  FISTTP 0x3fe89d9000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => quad: 1
 Rounding 2
  FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
  FISTP 0x3fe89d9000000000 => word: 1
- FISTP 0x3ff0000000000000 => word: 1
  FISTP 0x3fe89d9000000000 => long: 1
- FISTP 0x3ff0000000000000 => long: 1
  FISTP 0x3fe89d9000000000 => quad: 1
- FISTP 0x3ff0000000000000 => quad: 1
  FISTTP 0x3fe89d9000000000 => word: 0
- FISTTP 0x3ff0000000000000 => word: 1
  FISTTP 0x3fe89d9000000000 => long: 0
- FISTTP 0x3ff0000000000000 => long: 1
  FISTTP 0x3fe89d9000000000 => quad: 0
- FISTTP 0x3ff0000000000000 => quad: 1
-FUCOMI 0x3ff0000000000000 0x7ff0000000000000 --C
-FUCOMPP 0x3ff0000000000000 0x7ff0000000000000 --C
-Rounding 0
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
-Rounding 1
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
-Rounding 2
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0x3ff0000000000000 => quad: 1
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
-FUCOMI 0x7ff0000000000000 0x3ff0000000000000 ---
-FUCOMPP 0x7ff0000000000000 0x3ff0000000000000 ---
-Rounding 0
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0x3ff0000000000000 => quad: 1
-Rounding 1
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0x3ff0000000000000 => quad: 1
-Rounding 2
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000
- FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0x3ff0000000000000 => word: 1
- FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0x3ff0000000000000 => long: 1
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTP 0x3ff0000000000000 => quad: 1
- FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0x3ff0000000000000 => word: 1
- FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0x3ff0000000000000 => long: 1
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0x3ff0000000000000 => quad: 1
-FUCOMI 0xfff0000000000000 0x7ff0000000000000 --C
-FUCOMPP 0xfff0000000000000 0x7ff0000000000000 --C
 Rounding 0
- FRNDINT 0xfff0000000000000 => 0xfff0000000000000
  FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FISTP 0xfff0000000000000 => word: 8000
  FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0xfff0000000000000 => long: 80000000
  FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0xfff0000000000000 => quad: 8000000000000000
  FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0xfff0000000000000 => word: 8000
  FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0xfff0000000000000 => long: 80000000
  FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0xfff0000000000000 => quad: 8000000000000000
  FISTTP 0x7ff0000000000000 => quad: 8000000000000000
 Rounding 1
- FRNDINT 0xfff0000000000000 => 0xfff0000000000000
  FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FISTP 0xfff0000000000000 => word: 8000
  FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0xfff0000000000000 => long: 80000000
  FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0xfff0000000000000 => quad: 8000000000000000
  FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0xfff0000000000000 => word: 8000
  FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0xfff0000000000000 => long: 80000000
  FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0xfff0000000000000 => quad: 8000000000000000
  FISTTP 0x7ff0000000000000 => quad: 8000000000000000
 Rounding 2
- FRNDINT 0xfff0000000000000 => 0xfff0000000000000
  FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
- FISTP 0xfff0000000000000 => word: 8000
  FISTP 0x7ff0000000000000 => word: 8000
- FISTP 0xfff0000000000000 => long: 80000000
  FISTP 0x7ff0000000000000 => long: 80000000
- FISTP 0xfff0000000000000 => quad: 8000000000000000
  FISTP 0x7ff0000000000000 => quad: 8000000000000000
- FISTTP 0xfff0000000000000 => word: 8000
  FISTTP 0x7ff0000000000000 => word: 8000
- FISTTP 0xfff0000000000000 => long: 80000000
  FISTTP 0x7ff0000000000000 => long: 80000000
- FISTTP 0xfff0000000000000 => quad: 8000000000000000
  FISTTP 0x7ff0000000000000 => quad: 8000000000000000
-FUCOMI 0x7ff0000000000000 0xfff0000000000000 ---
-FUCOMPP 0x7ff0000000000000 0xfff0000000000000 ---
 Rounding 0
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
  FRNDINT 0xfff0000000000000 => 0xfff0000000000000
- FISTP 0x7ff0000000000000 => word: 8000
  FISTP 0xfff0000000000000 => word: 8000
- FISTP 0x7ff0000000000000 => long: 80000000
  FISTP 0xfff0000000000000 => long: 80000000
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
  FISTP 0xfff0000000000000 => quad: 8000000000000000
- FISTTP 0x7ff0000000000000 => word: 8000
  FISTTP 0xfff0000000000000 => word: 8000
- FISTTP 0x7ff0000000000000 => long: 80000000
  FISTTP 0xfff0000000000000 => long: 80000000
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
  FISTTP 0xfff0000000000000 => quad: 8000000000000000
 Rounding 1
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
  FRNDINT 0xfff0000000000000 => 0xfff0000000000000
- FISTP 0x7ff0000000000000 => word: 8000
  FISTP 0xfff0000000000000 => word: 8000
- FISTP 0x7ff0000000000000 => long: 80000000
  FISTP 0xfff0000000000000 => long: 80000000
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
  FISTP 0xfff0000000000000 => quad: 8000000000000000
- FISTTP 0x7ff0000000000000 => word: 8000
  FISTTP 0xfff0000000000000 => word: 8000
- FISTTP 0x7ff0000000000000 => long: 80000000
  FISTTP 0xfff0000000000000 => long: 80000000
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
  FISTTP 0xfff0000000000000 => quad: 8000000000000000
 Rounding 2
- FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000
  FRNDINT 0xfff0000000000000 => 0xfff0000000000000
- FISTP 0x7ff0000000000000 => word: 8000
  FISTP 0xfff0000000000000 => word: 8000
- FISTP 0x7ff0000000000000 => long: 80000000
  FISTP 0xfff0000000000000 => long: 80000000
- FISTP 0x7ff0000000000000 => quad: 8000000000000000
  FISTP 0xfff0000000000000 => quad: 8000000000000000
- FISTTP 0x7ff0000000000000 => word: 8000
  FISTTP 0xfff0000000000000 => word: 8000
- FISTTP 0x7ff0000000000000 => long: 80000000
  FISTTP 0xfff0000000000000 => long: 80000000
- FISTTP 0x7ff0000000000000 => quad: 8000000000000000
  FISTTP 0xfff0000000000000 => quad: 8000000000000000
-FUCOMI 0x3ff0002ca0000000 0xaeff000025000000 ---
-FUCOMPP 0x3ff0002ca0000000 0xaeff000025000000 ---
 Rounding 0
  FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000
- FRNDINT 0xaeff000025000000 => 0x8000000000000000
  FISTP 0x3ff0002ca0000000 => word: 1
- FISTP 0xaeff000025000000 => word: 0
  FISTP 0x3ff0002ca0000000 => long: 1
- FISTP 0xaeff000025000000 => long: 0
  FISTP 0x3ff0002ca0000000 => quad: 1
- FISTP 0xaeff000025000000 => quad: 0
  FISTTP 0x3ff0002ca0000000 => word: 1
- FISTTP 0xaeff000025000000 => word: 0
  FISTTP 0x3ff0002ca0000000 => long: 1
- FISTTP 0xaeff000025000000 => long: 0
  FISTTP 0x3ff0002ca0000000 => quad: 1
- FISTTP 0xaeff000025000000 => quad: 0
 Rounding 1
  FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000
- FRNDINT 0xaeff000025000000 => 0xbff0000000000000
  FISTP 0x3ff0002ca0000000 => word: 1
- FISTP 0xaeff000025000000 => word: ffff
  FISTP 0x3ff0002ca0000000 => long: 1
- FISTP 0xaeff000025000000 => long: ffffffff
  FISTP 0x3ff0002ca0000000 => quad: 1
- FISTP 0xaeff000025000000 => quad: ffffffffffffffff
  FISTTP 0x3ff0002ca0000000 => word: 1
- FISTTP 0xaeff000025000000 => word: 0
  FISTTP 0x3ff0002ca0000000 => long: 1
- FISTTP 0xaeff000025000000 => long: 0
  FISTTP 0x3ff0002ca0000000 => quad: 1
- FISTTP 0xaeff000025000000 => quad: 0
 Rounding 2
  FRNDINT 0x3ff0002ca0000000 => 0x4000000000000000
- FRNDINT 0xaeff000025000000 => 0x8000000000000000
  FISTP 0x3ff0002ca0000000 => word: 2
- FISTP 0xaeff000025000000 => word: 0
  FISTP 0x3ff0002ca0000000 => long: 2
- FISTP 0xaeff000025000000 => long: 0
  FISTP 0x3ff0002ca0000000 => quad: 2
- FISTP 0xaeff000025000000 => quad: 0
  FISTTP 0x3ff0002ca0000000 => word: 1
- FISTTP 0xaeff000025000000 => word: 0
  FISTTP 0x3ff0002ca0000000 => long: 1
- FISTTP 0xaeff000025000000 => long: 0
  FISTTP 0x3ff0002ca0000000 => quad: 1
- FISTTP 0xaeff000025000000 => quad: 0
-FUCOMI 0xaeff000025000000 0x3ff0002ca0000000 --C
-FUCOMPP 0xaeff000025000000 0x3ff0002ca0000000 --C
 Rounding 0
  FRNDINT 0xaeff000025000000 => 0x8000000000000000
- FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000
  FISTP 0xaeff000025000000 => word: 0
- FISTP 0x3ff0002ca0000000 => word: 1
  FISTP 0xaeff000025000000 => long: 0
- FISTP 0x3ff0002ca0000000 => long: 1
  FISTP 0xaeff000025000000 => quad: 0
- FISTP 0x3ff0002ca0000000 => quad: 1
  FISTTP 0xaeff000025000000 => word: 0
- FISTTP 0x3ff0002ca0000000 => word: 1
  FISTTP 0xaeff000025000000 => long: 0
- FISTTP 0x3ff0002ca0000000 => long: 1
  FISTTP 0xaeff000025000000 => quad: 0
- FISTTP 0x3ff0002ca0000000 => quad: 1
 Rounding 1
  FRNDINT 0xaeff000025000000 => 0xbff0000000000000
- FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000
  FISTP 0xaeff000025000000 => word: ffff
- FISTP 0x3ff0002ca0000000 => word: 1
  FISTP 0xaeff000025000000 => long: ffffffff
- FISTP 0x3ff0002ca0000000 => long: 1
  FISTP 0xaeff000025000000 => quad: ffffffffffffffff
- FISTP 0x3ff0002ca0000000 => quad: 1
  FISTTP 0xaeff000025000000 => word: 0
- FISTTP 0x3ff0002ca0000000 => word: 1
  FISTTP 0xaeff000025000000 => long: 0
- FISTTP 0x3ff0002ca0000000 => long: 1
  FISTTP 0xaeff000025000000 => quad: 0
- FISTTP 0x3ff0002ca0000000 => quad: 1
 Rounding 2
  FRNDINT 0xaeff000025000000 => 0x8000000000000000
- FRNDINT 0x3ff0002ca0000000 => 0x4000000000000000
  FISTP 0xaeff000025000000 => word: 0
- FISTP 0x3ff0002ca0000000 => word: 2
  FISTP 0xaeff000025000000 => long: 0
- FISTP 0x3ff0002ca0000000 => long: 2
  FISTP 0xaeff000025000000 => quad: 0
- FISTP 0x3ff0002ca0000000 => quad: 2
  FISTTP 0xaeff000025000000 => word: 0
- FISTTP 0x3ff0002ca0000000 => word: 1
  FISTTP 0xaeff000025000000 => long: 0
- FISTTP 0x3ff0002ca0000000 => long: 1
  FISTTP 0xaeff000025000000 => quad: 0
- FISTTP 0x3ff0002ca0000000 => quad: 1
-FUCOMI 0x3ff0000050000000 0xc082c00000000000 ---
-FUCOMPP 0x3ff0000050000000 0xc082c00000000000 ---
 Rounding 0
  FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000
- FRNDINT 0xc082c00000000000 => 0xc082c00000000000
  FISTP 0x3ff0000050000000 => word: 1
- FISTP 0xc082c00000000000 => word: fda8
  FISTP 0x3ff0000050000000 => long: 1
- FISTP 0xc082c00000000000 => long: fffffda8
  FISTP 0x3ff0000050000000 => quad: 1
- FISTP 0xc082c00000000000 => quad: fffffffffffffda8
  FISTTP 0x3ff0000050000000 => word: 1
- FISTTP 0xc082c00000000000 => word: fda8
  FISTTP 0x3ff0000050000000 => long: 1
- FISTTP 0xc082c00000000000 => long: fffffda8
  FISTTP 0x3ff0000050000000 => quad: 1
- FISTTP 0xc082c00000000000 => quad: fffffffffffffda8
 Rounding 1
  FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000
- FRNDINT 0xc082c00000000000 => 0xc082c00000000000
  FISTP 0x3ff0000050000000 => word: 1
- FISTP 0xc082c00000000000 => word: fda8
  FISTP 0x3ff0000050000000 => long: 1
- FISTP 0xc082c00000000000 => long: fffffda8
  FISTP 0x3ff0000050000000 => quad: 1
- FISTP 0xc082c00000000000 => quad: fffffffffffffda8
  FISTTP 0x3ff0000050000000 => word: 1
- FISTTP 0xc082c00000000000 => word: fda8
  FISTTP 0x3ff0000050000000 => long: 1
- FISTTP 0xc082c00000000000 => long: fffffda8
  FISTTP 0x3ff0000050000000 => quad: 1
- FISTTP 0xc082c00000000000 => quad: fffffffffffffda8
 Rounding 2
  FRNDINT 0x3ff0000050000000 => 0x4000000000000000
- FRNDINT 0xc082c00000000000 => 0xc082c00000000000
  FISTP 0x3ff0000050000000 => word: 2
- FISTP 0xc082c00000000000 => word: fda8
  FISTP 0x3ff0000050000000 => long: 2
- FISTP 0xc082c00000000000 => long: fffffda8
  FISTP 0x3ff0000050000000 => quad: 2
- FISTP 0xc082c00000000000 => quad: fffffffffffffda8
  FISTTP 0x3ff0000050000000 => word: 1
- FISTTP 0xc082c00000000000 => word: fda8
  FISTTP 0x3ff0000050000000 => long: 1
- FISTTP 0xc082c00000000000 => long: fffffda8
  FISTTP 0x3ff0000050000000 => quad: 1
- FISTTP 0xc082c00000000000 => quad: fffffffffffffda8
-FUCOMI 0xc082c00000000000 0x3ff0000050000000 --C
-FUCOMPP 0xc082c00000000000 0x3ff0000050000000 --C
 Rounding 0
  FRNDINT 0xc082c00000000000 => 0xc082c00000000000
- FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000
  FISTP 0xc082c00000000000 => word: fda8
- FISTP 0x3ff0000050000000 => word: 1
  FISTP 0xc082c00000000000 => long: fffffda8
- FISTP 0x3ff0000050000000 => long: 1
  FISTP 0xc082c00000000000 => quad: fffffffffffffda8
- FISTP 0x3ff0000050000000 => quad: 1
  FISTTP 0xc082c00000000000 => word: fda8
- FISTTP 0x3ff0000050000000 => word: 1
  FISTTP 0xc082c00000000000 => long: fffffda8
- FISTTP 0x3ff0000050000000 => long: 1
  FISTTP 0xc082c00000000000 => quad: fffffffffffffda8
- FISTTP 0x3ff0000050000000 => quad: 1
 Rounding 1
  FRNDINT 0xc082c00000000000 => 0xc082c00000000000
- FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000
  FISTP 0xc082c00000000000 => word: fda8
- FISTP 0x3ff0000050000000 => word: 1
  FISTP 0xc082c00000000000 => long: fffffda8
- FISTP 0x3ff0000050000000 => long: 1
  FISTP 0xc082c00000000000 => quad: fffffffffffffda8
- FISTP 0x3ff0000050000000 => quad: 1
  FISTTP 0xc082c00000000000 => word: fda8
- FISTTP 0x3ff0000050000000 => word: 1
  FISTTP 0xc082c00000000000 => long: fffffda8
- FISTTP 0x3ff0000050000000 => long: 1
  FISTTP 0xc082c00000000000 => quad: fffffffffffffda8
- FISTTP 0x3ff0000050000000 => quad: 1
 Rounding 2
  FRNDINT 0xc082c00000000000 => 0xc082c00000000000
- FRNDINT 0x3ff0000050000000 => 0x4000000000000000
  FISTP 0xc082c00000000000 => word: fda8
- FISTP 0x3ff0000050000000 => word: 2
  FISTP 0xc082c00000000000 => long: fffffda8
- FISTP 0x3ff0000050000000 => long: 2
  FISTP 0xc082c00000000000 => quad: fffffffffffffda8
- FISTP 0x3ff0000050000000 => quad: 2
  FISTTP 0xc082c00000000000 => word: fda8
- FISTTP 0x3ff0000050000000 => word: 1
  FISTTP 0xc082c00000000000 => long: fffffda8
- FISTTP 0x3ff0000050000000 => long: 1
  FISTTP 0xc082c00000000000 => quad: fffffffffffffda8
- FISTTP 0x3ff0000050000000 => quad: 1
-FUCOMI 0x0 0x7ff8000000000001 ZPC
-FUCOMPP 0x0 0x7ff8000000000001 ZPC
-Rounding 0
- FRNDINT 0x0 => 0x0
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FISTP 0x0 => word: 0
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x0 => long: 0
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x0 => quad: 0
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x0 => word: 0
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x0 => long: 0
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x0 => quad: 0
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
-Rounding 1
- FRNDINT 0x0 => 0x0
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FISTP 0x0 => word: 0
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x0 => long: 0
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x0 => quad: 0
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x0 => word: 0
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x0 => long: 0
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x0 => quad: 0
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
-Rounding 2
- FRNDINT 0x0 => 0x0
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FISTP 0x0 => word: 0
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x0 => long: 0
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x0 => quad: 0
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x0 => word: 0
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x0 => long: 0
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x0 => quad: 0
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
-FUCOMI 0x7ff8000000000001 0x0 ZPC
-FUCOMPP 0x7ff8000000000001 0x0 ZPC
-Rounding 0
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x0 => 0x0
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x0 => word: 0
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x0 => long: 0
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x0 => quad: 0
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x0 => word: 0
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x0 => long: 0
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x0 => quad: 0
-Rounding 1
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x0 => 0x0
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x0 => word: 0
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x0 => long: 0
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x0 => quad: 0
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x0 => word: 0
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x0 => long: 0
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x0 => quad: 0
-Rounding 2
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x0 => 0x0
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x0 => word: 0
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x0 => long: 0
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x0 => quad: 0
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x0 => word: 0
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x0 => long: 0
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x0 => quad: 0
-FUCOMI 0x7ff8000000000001 0x7ff8000000000001 ZPC
-FUCOMPP 0x7ff8000000000001 0x7ff8000000000001 ZPC
-Rounding 0
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
-Rounding 1
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
-Rounding 2
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x7ff8000000000001 => long: 80000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
-FUCOMI 0x7ff8000000000001 0x7ff8000000000001 ZPC
-FUCOMPP 0x7ff8000000000001 0x7ff8000000000001 ZPC
 Rounding 0
  FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
  FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => long: 80000000
  FISTP 0x7ff8000000000001 => long: 80000000
  FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => word: 8000
  FISTTP 0x7ff8000000000001 => word: 8000
  FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
  FISTTP 0x7ff8000000000001 => quad: 8000000000000000
 Rounding 1
  FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
  FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => long: 80000000
  FISTP 0x7ff8000000000001 => long: 80000000
  FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => word: 8000
  FISTTP 0x7ff8000000000001 => word: 8000
  FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => long: 80000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
  FISTTP 0x7ff8000000000001 => quad: 8000000000000000
 Rounding 2
  FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
- FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001
  FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => word: 8000
- FISTP 0x7ff8000000000001 => long: 80000000
  FISTP 0x7ff8000000000001 => long: 80000000
  FISTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTP 0x7ff8000000000001 => quad: 8000000000000000
  FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => word: 8000
- FISTTP 0x7ff8000000000001 => long: 80000000
  FISTTP 0x7ff8000000000001 => long: 80000000
  FISTTP 0x7ff8000000000001 => quad: 8000000000000000
- FISTTP 0x7ff8000000000001 => quad: 8000000000000000
 
 Done
diff --git a/tests/test22 b/tests/test22
index 836a319f..5a8dfb79 100755
--- a/tests/test22
+++ b/tests/test22
Binary files differdiff --git a/tests/test22.c b/tests/test22.c
index f0c1040e..646ef134 100644
--- a/tests/test22.c
+++ b/tests/test22.c
@@ -167,55 +167,54 @@ int main(int argc, const char** argv)
  char pf, cf, zf;
  char pa, ca, za;
  uint64_t flags;
- uint64_t tests[][2] = {
-  {0x0, 0x4082c00000000000LL},
-  {0x8000000000000000LL, 0x4082c00000000000LL},
-  {0x8000000000000000LL, 0x0},
-  {0x40dfffc000000000LL, 0x40e0002000000000LL}, 	// 0x7fff and 0x8001 as double
-  {0xc0e0002000000000LL, 0xc0dfffc000000000LL},		// -0x8001 and -0x7fff as double
-  {0x8000000000000000LL, 0x3ff0000000000000LL},
-  {0x3ff0000000000000LL, 0x3fe89d9000000000LL},
-  {0x3ff0000000000000LL, 0x7ff0000000000000LL},
-  {0xfff0000000000000LL, 0x7ff0000000000000LL},
-  {0x3ff0002ca0000000LL, 0xaeff000025000000LL},
-  {0x3ff0000050000000LL, 0xc082c00000000000LL},
-  {0x0, 0x7ff8000000000001LL},
-  {0x7ff8000000000001LL, 0x7ff8000000000001LL},
- };
- int n = sizeof(tests)/sizeof(tests[0]); 
- for(int i=0; i<n; ++i)
-  for(int j=0; j<2; ++j) {
-   *(uint64_t*)&a = tests[i][0+j];
-   *(uint64_t*)&b = tests[i][1-j];
-   printf("FUCOMI 0x%llx 0x%llx ", *(uint64_t*)&a, *(uint64_t*)&b);
-   flags = _fucomip_(a, b);
-   ca = (flags>>0)&1?'C':'-';
-   za = (flags>>(0+6))&1?'Z':'-';
-   pa = (flags>>(0+2))&1?'P':'-';
-   printf("%c%c%c\n", za, pa, ca);
-   printf("FUCOMPP 0x%llx 0x%llx ", *(uint64_t*)&a, *(uint64_t*)&b);
-   flags = _fucompp_(a, b);
-   ca = (flags>>8)&1?'C':'-';
-   za = (flags>>(8+6))&1?'Z':'-';
-   pa = (flags>>(8+2))&1?'P':'-';
-   printf("%c%c%c\n", za, pa, ca);
-   for(int rd=0; rd<3; ++rd) {
-    printf("Rounding %d\n", rd);
-    printf(" FRNDINT 0x%llx => 0x%llx\n", *(uint64_t*)&a, _frndint_(a, rd<<2));
-    printf(" FRNDINT 0x%llx => 0x%llx\n", *(uint64_t*)&b, _frndint_(b, rd<<2));
-    printf(" FISTP 0x%llx => word: %x\n", *(uint64_t*)&a, _fistpw_(a, rd<<2));
-    printf(" FISTP 0x%llx => word: %x\n", *(uint64_t*)&b, _fistpw_(b, rd<<2));
-    printf(" FISTP 0x%llx => long: %x\n", *(uint64_t*)&a, _fistpl_(a, rd<<2));
-    printf(" FISTP 0x%llx => long: %x\n", *(uint64_t*)&b, _fistpl_(b, rd<<2));
-    printf(" FISTP 0x%llx => quad: %llx\n", *(uint64_t*)&a, _fistpq_(a, rd<<2));
-    printf(" FISTP 0x%llx => quad: %llx\n", *(uint64_t*)&b, _fistpq_(b, rd<<2));
-    printf(" FISTTP 0x%llx => word: %x\n", *(uint64_t*)&a, _fisttpw_(a, rd<<2));
-    printf(" FISTTP 0x%llx => word: %x\n", *(uint64_t*)&b, _fisttpw_(b, rd<<2));
-    printf(" FISTTP 0x%llx => long: %x\n", *(uint64_t*)&a, _fisttpl_(a, rd<<2));
-    printf(" FISTTP 0x%llx => long: %x\n", *(uint64_t*)&b, _fisttpl_(b, rd<<2));
-    printf(" FISTTP 0x%llx => quad: %llx\n", *(uint64_t*)&a, _fisttpq_(a, rd<<2));
-    printf(" FISTTP 0x%llx => quad: %llx\n", *(uint64_t*)&b, _fisttpq_(b, rd<<2));
-  }
+ uint64_t tests[] = {
+    0x0,
+    0x4082c00000000000LL,
+    0x8000000000000000LL,
+    0x40dfffc000000000LL, 
+    0x40e0002000000000LL, 	// 0x7fff and 0x8001 as double
+    0xc0e0002000000000LL, 
+    0xc0dfffc000000000LL,	// -0x8001 and -0x7fff as double
+    0x3ff0000000000000LL,
+    0x3fe89d9000000000LL,
+    0x7ff0000000000000LL,
+    0xfff0000000000000LL, 
+    0x3ff0002ca0000000LL, 
+    0xaeff000025000000LL,
+    0x3ff0000050000000LL, 
+    0xc082c00000000000LL,
+    0x7ff8000000000001LL,
+};
+int n = sizeof(tests)/sizeof(tests[0]); 
+for(int i=0; i<n; ++i)
+    for(int j=0; j<n; ++j) {
+        *(uint64_t*)&a = tests[i];
+        *(uint64_t*)&b = tests[j];
+        printf("FUCOMI 0x%llx 0x%llx ", *(uint64_t*)&a, *(uint64_t*)&b);
+        flags = _fucomip_(a, b);
+        ca = (flags>>0)&1?'C':'-';
+        za = (flags>>(0+6))&1?'Z':'-';
+        pa = (flags>>(0+2))&1?'P':'-';
+        printf("%c%c%c\n", za, pa, ca);
+        printf("FUCOMPP 0x%llx 0x%llx ", *(uint64_t*)&a, *(uint64_t*)&b);
+        flags = _fucompp_(a, b);
+        ca = (flags>>8)&1?'C':'-';
+        za = (flags>>(8+6))&1?'Z':'-';
+        pa = (flags>>(8+2))&1?'P':'-';
+        printf("%c%c%c\n", za, pa, ca);
+    }
+for(int i=0; i<n; ++i) {
+    *(uint64_t*)&a = tests[i];
+    for(int rd=0; rd<3; ++rd) {
+        printf("Rounding %d\n", rd);
+        printf(" FRNDINT 0x%llx => 0x%llx\n", *(uint64_t*)&a, _frndint_(a, rd<<2));
+        printf(" FISTP 0x%llx => word: %x\n", *(uint64_t*)&a, _fistpw_(a, rd<<2));
+        printf(" FISTP 0x%llx => long: %x\n", *(uint64_t*)&a, _fistpl_(a, rd<<2));
+        printf(" FISTP 0x%llx => quad: %llx\n", *(uint64_t*)&a, _fistpq_(a, rd<<2));
+        printf(" FISTTP 0x%llx => word: %x\n", *(uint64_t*)&a, _fisttpw_(a, rd<<2));
+        printf(" FISTTP 0x%llx => long: %x\n", *(uint64_t*)&a, _fisttpl_(a, rd<<2));
+        printf(" FISTTP 0x%llx => quad: %llx\n", *(uint64_t*)&a, _fisttpq_(a, rd<<2));
+    }
  }
  printf("\nDone\n");
 }