diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-01-08 14:43:06 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-01-08 14:43:14 +0100 |
| commit | 82105a1543bd8cdf2954067d2e491f034b43f6eb (patch) | |
| tree | 4387199460290fde3637de3bd7a07a29d65442d9 /src/emu/x87emu_private.h | |
| parent | c65910fd253edaa07b6397f39e085b19ce8fc53f (diff) | |
| download | box64-82105a1543bd8cdf2954067d2e491f034b43f6eb.tar.gz box64-82105a1543bd8cdf2954067d2e491f034b43f6eb.zip | |
[INTERPRETER] Improved x87 emulation a bit ([ARM64_DYNAREC] too)
Diffstat (limited to 'src/emu/x87emu_private.h')
| -rw-r--r-- | src/emu/x87emu_private.h | 4 |
1 files changed, 2 insertions, 2 deletions
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); |