about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-04-04 16:58:53 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-04-04 16:58:53 +0200
commite80b595e8ef1278ee87adb014545d0c7d93d9add (patch)
treef2819676fae3a6d92c48cb3596e64d4ce43b3cca /src
parentecc53756154ba93f08772b57757ee6f235efd782 (diff)
downloadbox64-e80b595e8ef1278ee87adb014545d0c7d93d9add.tar.gz
box64-e80b595e8ef1278ee87adb014545d0c7d93d9add.zip
[INTERP] Small changes in a few SSE/AVX convertions opcodes
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run660f.c4
-rw-r--r--src/emu/x64runavx660f.c8
-rw-r--r--src/emu/x64runavxf20f.c12
-rw-r--r--src/emu/x64runf30f.c2
4 files changed, 13 insertions, 13 deletions
diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c
index 51a7b35c..27dc7af0 100644
--- a/src/emu/x64run660f.c
+++ b/src/emu/x64run660f.c
@@ -2433,11 +2433,11 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr)
         GETEX(0);

         GETGX;

         if(isnan(EX->d[0]) || isinf(EX->d[0]) || EX->d[0]>(double)0x7fffffff)

-            GX->sd[0] = 0x80000000;

+            GX->ud[0] = 0x80000000;

         else

             GX->sd[0] = EX->d[0];

         if(isnan(EX->d[1]) || isinf(EX->d[1]) || EX->d[1]>(double)0x7fffffff)

-            GX->sd[1] = 0x80000000;

+            GX->ud[1] = 0x80000000;

         else

             GX->sd[1] = EX->d[1];

         GX->q[1] = 0;

diff --git a/src/emu/x64runavx660f.c b/src/emu/x64runavx660f.c
index 6ee3ae52..1597b63f 100644
--- a/src/emu/x64runavx660f.c
+++ b/src/emu/x64runavx660f.c
@@ -1672,21 +1672,21 @@ uintptr_t RunAVX_660F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
             GETGX;
             GETGY;
             if(isnan(EX->d[0]) || isinf(EX->d[0]) || EX->d[0]>(double)0x7fffffff)
-                GX->sd[0] = 0x80000000;
+                GX->ud[0] = 0x80000000;
             else
                 GX->sd[0] = EX->d[0];
             if(isnan(EX->d[1]) || isinf(EX->d[1]) || EX->d[1]>(double)0x7fffffff)
-                GX->sd[1] = 0x80000000;
+                GX->ud[1] = 0x80000000;
             else
                 GX->sd[1] = EX->d[1];
             if(vex.l) {
                 GETEY;
                 if(isnan(EY->d[0]) || isinf(EY->d[0]) || EY->d[0]>(double)0x7fffffff)
-                    GX->sd[2] = 0x80000000;
+                    GX->ud[2] = 0x80000000;
                 else
                     GX->sd[2] = EY->d[0];
                 if(isnan(EY->d[1]) || isinf(EY->d[1]) || EY->d[1]>(double)0x7fffffff)
-                    GX->sd[3] = 0x80000000;
+                    GX->ud[3] = 0x80000000;
                 else
                     GX->sd[3] = EY->d[1];
             } else
diff --git a/src/emu/x64runavxf20f.c b/src/emu/x64runavxf20f.c
index a2c68a24..55da18dc 100644
--- a/src/emu/x64runavxf20f.c
+++ b/src/emu/x64runavxf20f.c
@@ -116,7 +116,7 @@ uintptr_t RunAVX_F20F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
 
         case 0x2C:  /* VCVTTSD2SI Gd, Ex */
             nextop = F8;
-            GETEX(0);
+            _GETEX(0);
             GETGD;
             if(rex.w)
                 if(isnan(EX->d[0]) || isinf(EX->d[0]) || EX->d[0]>=(double)0x7fffffffffffffffLL)
@@ -133,7 +133,7 @@ uintptr_t RunAVX_F20F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
             break;
         case 0x2D:  /* VCVTSD2SI Gd, Ex */
             nextop = F8;
-            GETEX(0);
+            _GETEX(0);
             GETGD;
             if(rex.w) {
                 if(isnan(EX->d[0]) || isinf(EX->d[0]) || EX->d[0]>=(double)0x7fffffffffffffffLL)
@@ -197,7 +197,7 @@ uintptr_t RunAVX_F20F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
 
         case 0x58:  /* VADDSD Gx, Vx, Ex */
             nextop = F8;
-            GETEX(0);
+            _GETEX(0);
             GETGX;
             GETVX;
             GETGY;
@@ -209,7 +209,7 @@ uintptr_t RunAVX_F20F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
             break;
         case 0x59:  /* VMULSD Gx, Vx, Ex */
             nextop = F8;
-            GETEX(0);
+            _GETEX(0);
             GETGX;
             GETVX;
             GETGY;
@@ -223,7 +223,7 @@ uintptr_t RunAVX_F20F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
             break;
         case 0x5A:  /* VCVTSD2SS Gx, Vx, Ex */
             nextop = F8;
-            GETEX(0);
+            _GETEX(0);
             GETGX;
             GETVX;
             GETGY;
@@ -235,7 +235,7 @@ uintptr_t RunAVX_F20F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
 
         case 0x5C:  /* VSUBSD Gx, Vx, Ex */
             nextop = F8;
-            GETEX(0);
+            _GETEX(0);
             GETGX;
             GETVX;
             GETGY;
diff --git a/src/emu/x64runf30f.c b/src/emu/x64runf30f.c
index 09267166..f4d7d0a6 100644
--- a/src/emu/x64runf30f.c
+++ b/src/emu/x64runf30f.c
@@ -437,7 +437,7 @@ uintptr_t RunF30F(x64emu_t *emu, rex_t rex, uintptr_t addr)
 

     case 0xE6:  /* CVTDQ2PD Gx, Ex */

         nextop = F8;

-        GETEX(0);

+        GETEX8(0);

         GETGX;

         GX->d[1] = EX->sd[1];

         GX->d[0] = EX->sd[0];