diff options
| -rw-r--r-- | src/dynarec/arm64/arm64_emitter.h | 2 | ||||
| -rw-r--r-- | src/dynarec/arm64/arm64_printer.c | 13 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_dd.c | 9 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_df.c | 26 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_functions.c | 8 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_helper.h | 6 | ||||
| -rw-r--r-- | src/emu/x87emu_private.h | 4 | ||||
| -rw-r--r-- | tests/ref22.txt | 1342 | ||||
| -rwxr-xr-x | tests/test22 | bin | 16360 -> 16304 bytes | |||
| -rw-r--r-- | tests/test22.c | 97 |
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"); } |