about summary refs log tree commit diff stats
path: root/src/emu
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-08-21 08:35:24 +0200
committerGitHub <noreply@github.com>2023-08-21 08:35:24 +0200
commit7a992837a13eecbcccb54c93c77ee8e1a9c74d1c (patch)
treed04c23b1c71c6eac7cbd180bdf98e407de52d3e1 /src/emu
parent33d8fa7b23e06b2043cbcd8706e8129c92587d83 (diff)
parentcd0aad731adede316ea036692ef92669474c1256 (diff)
downloadbox64-7a992837a13eecbcccb54c93c77ee8e1a9c74d1c.tar.gz
box64-7a992837a13eecbcccb54c93c77ee8e1a9c74d1c.zip
Merge pull request #941 from wannacu/main
[ARM64_DYNAREC] Added 0F F1/F3/F7 opcodes
Diffstat (limited to 'src/emu')
-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 466220bc..a05b3596 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -1734,7 +1734,16 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
                 tmp32u += (GM->ub[i]>EM->ub[i])?(GM->ub[i] - EM->ub[i]):(EM->ub[i] - GM->ub[i]);

             GM->q = tmp32u;

             break;

-

+        case 0xF7:                   /* MASKMOVQ Gm, Em */

+            nextop = F8;

+            GETEM(0);

+            GETGM;

+            for (int i = 0; i < 8; i++) {

+                if (EM->ub[i] & 0x80) {

+                   ((reg64_t*)(emu->regs[_DI].q[0]))->byte[i] = GM->ub[i];

+                }

+            }

+            break;

         case 0xF8:                   /* PSUBB Gm,Em */

             nextop = F8;

             GETEM(0);