about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-06-17 22:15:03 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-06-17 22:15:03 +0200
commit7bec96e4b239d3d9167b9945af2ab0cbdd4251af (patch)
tree828f96c609da8bf89963b42b2116f2ba1d421f92 /src
parent6bb1bacfbaf6cd46adb601d47881182e5ce4bb9d (diff)
downloadbox64-7bec96e4b239d3d9167b9945af2ab0cbdd4251af.tar.gz
box64-7bec96e4b239d3d9167b9945af2ab0cbdd4251af.zip
[COSIM] Some improvment to avoid segfault in edge cases
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run.c2
-rw-r--r--src/emu/x64run660f.c2
-rw-r--r--src/emu/x64runf30f.c4
3 files changed, 4 insertions, 4 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index ff08d3fb..e56a0431 100644
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -436,7 +436,7 @@ x64emurun:
             break;
         case 0x63:                      /* MOVSXD Gd,Ed */
             nextop = F8;
-            GETED(0);
+            GETE4(0);
             GETGD;
             if(rex.is32bits) {
                 // ARPL here
diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c
index e5bf347e..aacf2768 100644
--- a/src/emu/x64run660f.c
+++ b/src/emu/x64run660f.c
@@ -2255,7 +2255,7 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr)
         break;

     case 0xD6:                      /* MOVQ Ex,Gx */

         nextop = F8;

-        GETEX(0);

+        GETEX8(0);

         GETGX;

         EX->q[0] = GX->q[0];

         if(MODREG)

diff --git a/src/emu/x64runf30f.c b/src/emu/x64runf30f.c
index 1c650469..d42586fe 100644
--- a/src/emu/x64runf30f.c
+++ b/src/emu/x64runf30f.c
@@ -54,7 +54,7 @@ uintptr_t RunF30F(x64emu_t *emu, rex_t rex, uintptr_t addr)
 

     case 0x10:  /* MOVSS Gx Ex */

         nextop = F8;

-        GETEX(0);

+        GETEX4(0);

         GETGX;

         GX->ud[0] = EX->ud[0];

         if(!MODREG) {

@@ -64,7 +64,7 @@ uintptr_t RunF30F(x64emu_t *emu, rex_t rex, uintptr_t addr)
         break;

     case 0x11:  /* MOVSS Ex Gx */

         nextop = F8;

-        GETEX(0);

+        GETEX4(0);

         GETGX;

         EX->ud[0] = GX->ud[0];

         break;