about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-05 14:15:15 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-05 14:15:15 +0100
commit19fc4401004c0c5f51eb8c8b52ec8f24dcda7222 (patch)
tree94f10430b04f33367cf65693d5e8db0b1f8d0ff3 /src
parent2009b014259d82d24fdacf30dd5be5ba2ed0c370 (diff)
downloadbox64-19fc4401004c0c5f51eb8c8b52ec8f24dcda7222.tar.gz
box64-19fc4401004c0c5f51eb8c8b52ec8f24dcda7222.zip
Added 0F BE/BF MOVSX opcodes
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run0f.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index d49f8807..8f40aa5f 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -78,6 +78,29 @@ int Run0F(x64emu_t *emu, rex_t rex)
             GD->q[0] = EB->byte[0];

             break;

 

+        case 0xBE:                      /* MOVSX Gd,Eb */

+            nextop = F8;

+            GETEB;

+            GETGD;

+            if(rex.w)

+                GD->sq[0] = EB->sbyte[0];

+            else {

+                GD->sdword[0] = EB->sbyte[0];

+                GD->dword[1] = 0;

+            }

+            break;

+        case 0xBF:                      /* MOVSX Gd,Ew */

+            nextop = F8;

+            GETEW;

+            GETGD;

+            if(rex.w)

+                GD->sq[0] = EW->sword[0];

+            else {

+                GD->sdword[0] = EW->sword[0];

+                GD->dword[1] = 0;

+            }

+            break;

+

         default:

             return 1;

     }