about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-05 12:06:51 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-05 12:06:51 +0100
commit93ae43945439a3032b03818e84a137a4ae2e3838 (patch)
treea6342d037fc87f1340986e19113986ef2be50138 /src
parent48e28bfdc562303ab3b1f47d4f4dec3f973b9914 (diff)
downloadbox64-93ae43945439a3032b03818e84a137a4ae2e3838.tar.gz
box64-93ae43945439a3032b03818e84a137a4ae2e3838.zip
Added REX 88 MOV opcode and adjusted REX 8B one
Diffstat (limited to 'src')
-rwxr-xr-xsrc/emu/x64run.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index 13ec515e..97bd6b20 100755
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -276,6 +276,12 @@ x64emurun:
                 test32(emu, ED->dword[0], GD->dword[0]);
             break;
 
+        case 0x88:                      /* MOV Eb,Gb */
+            nextop = F8;
+            GETEB;
+            GETGB;
+            EB->byte[0] = GB;
+            break;
         case 0x89:                    /* MOV Ed,Gd */
             nextop = F8;
             GETED;
@@ -297,11 +303,7 @@ x64emurun:
             if(rex.w)
                 GD->q[0] = ED->q[0];
             else
-                //if ED is a reg, than the opcode works like movzx
-                if((nextop&0xC0)==0xC0)
-                    GD->q[0] = ED->dword[0];
-                else
-                    GD->dword[0] = ED->dword[0];
+                GD->q[0] = ED->dword[0];
             break;
 
         case 0x8D:                      /* LEA Gd,M */