diff options
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); |