about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-06-18 14:28:15 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-06-18 14:28:15 +0200
commited09b87953b4038f13807f77ccc437e818977fa6 (patch)
tree25aed64a4357e1e14260e2a92449d721fd41fd6c /src
parent8c3fbe26ad7100ed37c6c35aa564cde87a9882a7 (diff)
downloadbox64-ed09b87953b4038f13807f77ccc437e818977fa6.tar.gz
box64-ed09b87953b4038f13807f77ccc437e818977fa6.zip
Added 67 63 opcode
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run67.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/emu/x64run67.c b/src/emu/x64run67.c
index 951ee72e..2d9db866 100644
--- a/src/emu/x64run67.c
+++ b/src/emu/x64run67.c
@@ -152,6 +152,19 @@ uintptr_t Run67(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr)
             cmp32(emu, R_EAX, F32);

         break;

 

+    case 0x63:                      /* MOVSXD Gd,Ed */

+        nextop = F8;

+        GETED32(0);

+        GETGD;

+        if(rex.w)

+            GD->sq[0] = ED->sdword[0];

+        else

+            if(MODREG)

+                GD->q[0] = ED->dword[0];    // not really a sign extension

+            else

+                GD->sdword[0] = ED->sdword[0];  // meh?

+        break;

+

     case 0x66:

         #ifdef TEST_INTERPRETER

         return Test6766(test, rex, rep, addr);