about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-06-09 17:45:36 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-06-09 17:45:36 +0200
commit38364ef07f328003104bb2a2d28a2c5d66f40d92 (patch)
tree927f8a4ebbc25b382b9a85ee606d0cdf5ed78e8f /src
parentb25d8db9949ed5d16408a06fe0906f424e53ae85 (diff)
downloadbox64-38364ef07f328003104bb2a2d28a2c5d66f40d92.tar.gz
box64-38364ef07f328003104bb2a2d28a2c5d66f40d92.zip
[COSIM] Fixed 66 48 xx type of opcodes
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run_private.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c
index c5a2716c..9fc0c280 100644
--- a/src/emu/x64run_private.c
+++ b/src/emu/x64run_private.c
@@ -1567,9 +1567,12 @@ reg64_t* TestEw(x64test_t *test, uintptr_t* addr, rex_t rex, uint8_t v, uint8_t
         return &test->emu->regs[(m&0x07)+(rex.b<<3)];
     } else {
         reg64_t* ret =  GetECommon(test->emu, addr, rex, m, delta);
-        test->memsize = 2;
+        test->memsize = rex.w?8:2;
         test->memaddr = (uintptr_t)ret;
-        *(uint16_t*)test->mem = ret->word[0];
+        if(rex.w)
+            *(uint64_t*)test->mem = ret->q[0];
+        else
+            *(uint16_t*)test->mem = ret->word[0];
         return (reg64_t*)test->mem;
     }
 }