about summary refs log tree commit diff stats
path: root/src/emu
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-07-23 11:02:22 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-07-23 11:02:22 +0200
commitda6ad1a43d85e0a9ad4f2801f5b5bdb73dc55055 (patch)
tree460fd0feaaa62739ae6d86096a4b2dbb339bda27 /src/emu
parentf9e4253cb7ba9843f04f44e19294256aae0393a0 (diff)
downloadbox64-da6ad1a43d85e0a9ad4f2801f5b5bdb73dc55055.tar.gz
box64-da6ad1a43d85e0a9ad4f2801f5b5bdb73dc55055.zip
[32BITS] Added 66 FF /6 opcode ([ARM64_DYNAREC] too)
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/x64run66.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/emu/x64run66.c b/src/emu/x64run66.c
index b037de11..4a6f92aa 100644
--- a/src/emu/x64run66.c
+++ b/src/emu/x64run66.c
@@ -799,7 +799,6 @@ uintptr_t Run66(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr)
     case 0xFF:                      /* GRP 5 Ew */

         nextop = F8;

         GETEW(0);

-        GETGW;

         switch((nextop>>3)&7) {

             case 0:                 /* INC Ed */

                 EW->word[0] = inc16(emu, EW->word[0]);

@@ -817,9 +816,12 @@ uintptr_t Run66(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr)
                 }

                 addr = tmp64u;

                 break;

-           /*case 6:

-                Push16(emu, EW->word[0]);

-                break;*/

+           case 6:                  /* Push Ew */

+                if(rex.is32bits) {

+                    Push16(emu, EW->word[0]);

+                } else 

+                    return 0;

+                break;

             default:

                     printf_log(LOG_NONE, "Illegal Opcode %p: 66 %02X %02X %02X %02X %02X %02X\n",(void*)R_RIP, opcode, nextop, PK(2), PK(3), PK(4), PK(5));

                     emu->quit=1;