diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-03-26 19:57:55 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-03-26 19:57:55 +0100 |
| commit | 409b5a37fba978ebf249a3541cac95581a63051a (patch) | |
| tree | a7511dd79d07e02c6adc4a8e53d3fbe7879c4492 /src | |
| parent | 9587e490cc94d3df23f59023e826fd6c9c3d5d5c (diff) | |
| download | box64-409b5a37fba978ebf249a3541cac95581a63051a.tar.gz box64-409b5a37fba978ebf249a3541cac95581a63051a.zip | |
[INTERP] More NA Sign fixes for a few AVX.0F opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64runavx0f.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/emu/x64runavx0f.c b/src/emu/x64runavx0f.c index 34cfa742..6d5de569 100644 --- a/src/emu/x64runavx0f.c +++ b/src/emu/x64runavx0f.c @@ -368,7 +368,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETVX; GETGY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GX->f[i]) || isnanf(EX->f[i]); + maskps[i] = isnanf(VX->f[i]) || isnanf(EX->f[i]); GX->f[i] = VX->f[i] + EX->f[i]; if(isnanf(GX->f[i]) && !maskps[i]) GX->ud[i] |= 0x80000000; } @@ -376,7 +376,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETEY; GETVY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GY->f[i]) || isnanf(EY->f[i]); + maskps[i] = isnanf(VY->f[i]) || isnanf(EY->f[i]); GY->f[i] = VY->f[i] + EY->f[i]; if(isnanf(GY->f[i]) && !maskps[i]) GY->ud[i] |= 0x80000000; } @@ -390,7 +390,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETVX; GETGY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GX->f[i]) || isnanf(EX->f[i]); + maskps[i] = isnanf(VX->f[i]) || isnanf(EX->f[i]); GX->f[i] = VX->f[i] * EX->f[i]; if(isnanf(GX->f[i]) && !maskps[i]) GX->ud[i] |= 0x80000000; } @@ -398,7 +398,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETEY; GETVY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GY->f[i]) || isnanf(EY->f[i]); + maskps[i] = isnanf(VY->f[i]) || isnanf(EY->f[i]); GY->f[i] = VY->f[i] * EY->f[i]; if(isnanf(GY->f[i]) && !maskps[i]) GY->ud[i] |= 0x80000000; } @@ -444,7 +444,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETVX; GETGY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GX->f[i]) || isnanf(EX->f[i]); + maskps[i] = isnanf(VX->f[i]) || isnanf(EX->f[i]); GX->f[i] = VX->f[i] - EX->f[i]; if(isnanf(GX->f[i]) && !maskps[i]) GX->ud[i] |= 0x80000000; } @@ -452,7 +452,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETEY; GETVY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GY->f[i]) || isnanf(EY->f[i]); + maskps[i] = isnanf(VY->f[i]) || isnanf(EY->f[i]); GY->f[i] = VY->f[i] - EY->f[i]; if(isnanf(GY->f[i]) && !maskps[i]) GY->ud[i] |= 0x80000000; } @@ -488,7 +488,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETVX; GETGY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GX->f[i]) || isnanf(EX->f[i]); + maskps[i] = isnanf(VX->f[i]) || isnanf(EX->f[i]); GX->f[i] = VX->f[i] / EX->f[i]; if(isnanf(GX->f[i]) && !maskps[i]) GX->ud[i] |= 0x80000000; } @@ -496,7 +496,7 @@ uintptr_t RunAVX_0F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step) GETEY; GETVY; for(int i=0; i<4; ++i) { - maskps[i] = isnanf(GY->f[i]) || isnanf(EY->f[i]); + maskps[i] = isnanf(VY->f[i]) || isnanf(EY->f[i]); GY->f[i] = VY->f[i] / EY->f[i]; if(isnanf(GY->f[i]) && !maskps[i]) GY->ud[i] |= 0x80000000; } |