diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-04-30 16:15:34 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-04-30 16:15:34 +0200 |
| commit | 89dbd81f27bc8a3ad1e27d7073883f27ee15865f (patch) | |
| tree | 528463733116766bb26821434f81487eff191863 /src | |
| parent | c835227b8bd0516577d5d8373a1a7340dd385537 (diff) | |
| download | box64-89dbd81f27bc8a3ad1e27d7073883f27ee15865f.tar.gz box64-89dbd81f27bc8a3ad1e27d7073883f27ee15865f.zip | |
[INTERP] Improved NAN handling on VSUBPD opcode
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64runavx660f.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/emu/x64runavx660f.c b/src/emu/x64runavx660f.c index f0405e4a..b08a5f6c 100644 --- a/src/emu/x64runavx660f.c +++ b/src/emu/x64runavx660f.c @@ -445,14 +445,18 @@ uintptr_t RunAVX_660F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETEX(0); GETGX; GETVX; + MARK_NAN_VD_2(VX, EX); GX->d[0] = VX->d[0] - EX->d[0]; GX->d[1] = VX->d[1] - EX->d[1]; + CHECK_NAN_VD(GX); GETGY; if(vex.l) { GETEY; GETVY; + MARK_NAN_VD_2(VY, EY); GY->d[0] = VY->d[0] - EY->d[0]; GY->d[1] = VY->d[1] - EY->d[1]; + CHECK_NAN_VD(GY); } else { GY->u128 = 0; } |