about summary refs log tree commit diff stats
path: root/src/emu
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-07-09 17:32:13 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-07-09 17:32:13 +0200
commitf8ef852b4699dba4f8a7e76943a32b73b1e5d9f6 (patch)
tree12f12e7af3ae349759a8d7a39a229e4e72997b7a /src/emu
parent741b03761abf3688893abb3bca279f039e4062c7 (diff)
downloadbox64-f8ef852b4699dba4f8a7e76943a32b73b1e5d9f6.tar.gz
box64-f8ef852b4699dba4f8a7e76943a32b73b1e5d9f6.zip
Added 66 0F C8..CF opcodes ([DYNAREC] too)
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/x64run660f.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c
index 08f23f7d..94445359 100644
--- a/src/emu/x64run660f.c
+++ b/src/emu/x64run660f.c
@@ -1265,6 +1265,22 @@ int Run660F(x64emu_t *emu, rex_t rex)
         GX->q[1] = eax1.q[1];

         break;

 

+    case 0xC8:

+    case 0xC9:

+    case 0xCA:

+    case 0xCB:

+    case 0xCC:

+    case 0xCD:

+    case 0xCE:

+    case 0xCF:                  /* BSWAP reg16 */

+        tmp8u = (opcode&7)+(rex.b<<3);

+        if(rex.w) {

+            emu->regs[tmp8u].q[0] = __builtin_bswap64(emu->regs[tmp8u].q[0]);

+        } else {

+            emu->regs[tmp8u].word[0] = __builtin_bswap16(emu->regs[tmp8u].word[0]);

+        }

+        break;

+

     case 0xD1:  /* PSRLW Gx, Ex */

         nextop = F8;

         GETEX(0);