about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
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;
     }
 }