about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-03-26 19:57:55 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-03-26 19:57:55 +0100
commit409b5a37fba978ebf249a3541cac95581a63051a (patch)
treea7511dd79d07e02c6adc4a8e53d3fbe7879c4492 /src
parent9587e490cc94d3df23f59023e826fd6c9c3d5d5c (diff)
downloadbox64-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.c16
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;
                 }