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/x64run67.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/emu/x64run67.c b/src/emu/x64run67.c
index 7db5494f..c5a1f221 100644
--- a/src/emu/x64run67.c
+++ b/src/emu/x64run67.c
@@ -43,6 +43,21 @@ int Run67(x64emu_t *emu, rex_t rex)
 

     switch(opcode) {

 

+    case 0x89:                    /* MOV Ed,Gd */

+        nextop = F8;

+        GETED32(0);

+        GETGD;

+        if(rex.w) {

+            ED->q[0] = GD->q[0];

+        } else {

+            //if ED is a reg, than the opcode works like movzx

+            if(MODREG)

+                ED->q[0] = GD->dword[0];

+            else

+                ED->dword[0] = GD->dword[0];

+        }

+        break;

+

     case 0x8D:                      /* LEA Gd,M */

         nextop = F8;

         GETED32(0);