about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-04-01 17:03:48 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-04-01 17:03:48 +0200
commitb40c4ebcd76df43366cf769835d48194b2673281 (patch)
treee822a3b186a0f47a215e5d4e122e35b96ec0f3d5 /src
parent53e449a96ff47e56e5eeccae25ac8445f62acc78 (diff)
downloadbox64-b40c4ebcd76df43366cf769835d48194b2673281.tar.gz
box64-b40c4ebcd76df43366cf769835d48194b2673281.zip
Added 67 89 opcode
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);