about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-05 11:21:00 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-05 11:21:00 +0100
commit2b7d375191968787466b5590fae1074d6f614851 (patch)
tree80eaa3142abb3fa4d66a5910c872c1af0e820a5a /src
parent4d02ba25f10830205ac161338e8473f80240ac66 (diff)
downloadbox64-2b7d375191968787466b5590fae1074d6f614851.tar.gz
box64-2b7d375191968787466b5590fae1074d6f614851.zip
Added REX 0F B6 MOVZX opcode
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run0f.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index c922c2d3..31b22eec 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -55,7 +55,6 @@ int Run0F(x64emu_t *emu, rex_t rex)
             , if(rex.w) {GD->q[0] = ED->q[0]; } else {GD->dword[0] = ED->dword[0];}

         )                               /* 0x40 -> 0x4F CMOVxx Gd,Ed */ // conditional move, no sign

         

-        #undef GOCOND

         case 0xAF:                      /* IMUL Gd,Ed */

             nextop = F8;

             GETED;

@@ -66,6 +65,16 @@ int Run0F(x64emu_t *emu, rex_t rex)
                 GD->dword[0] = imul32(emu, GD->dword[0], ED->dword[0]);

             break;

 

+        case 0xB6:                      /* MOVZX Gd,Eb */

+            nextop = F8;

+            GETEB;

+            GETGD;

+            if(rex.w)

+                GD->q[0] = EB->byte[0];

+            else

+                GD->dword[0] = EB->byte[0];

+            break;

+

         default:

             return 1;

     }