diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2023-04-09 14:41:36 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-09 08:41:36 +0200 |
| commit | 24f2720df43c4570ab9d344a688e0a36d0a8fa88 (patch) | |
| tree | 04e3028d83969421887e29468106f46b416b9144 /src/emu | |
| parent | d9c30c8942888d609d89df5b8ea29071d2663b46 (diff) | |
| download | box64-24f2720df43c4570ab9d344a688e0a36d0a8fa88.tar.gz box64-24f2720df43c4570ab9d344a688e0a36d0a8fa88.zip | |
[TESTS] Disable compiler optimizations for test17 and some related fixes (#677)
* [TESTS] Disable compiler optimizations for test17 * [INTERP] Fixed MAXSD/MINSD when both sources are 0 * [RV64_DYNAREC] Fixed F2 0F 5D MINSD opcode
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64runf20f.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/emu/x64runf20f.c b/src/emu/x64runf20f.c index 10da2f09..33750318 100644 --- a/src/emu/x64runf20f.c +++ b/src/emu/x64runf20f.c @@ -205,6 +205,8 @@ uintptr_t RunF20F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) nextop = F8; GETEX(0); GETGX; + if (GX->d[0] == 0.0 && EX->d[0] == 0.0) + GX->d[0] = EX->d[0]; if (isnan(GX->d[0]) || isnan(EX->d[0]) || isless(EX->d[0], GX->d[0])) GX->d[0] = EX->d[0]; break; @@ -225,6 +227,8 @@ uintptr_t RunF20F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) nextop = F8; GETEX(0); GETGX; + if (GX->d[0] == 0.0 && EX->d[0] == 0.0) + GX->d[0] = EX->d[0]; if (isnan(GX->d[0]) || isnan(EX->d[0]) || isgreater(EX->d[0], GX->d[0])) GX->d[0] = EX->d[0]; break; |