diff options
| author | wannacu <wannacu2049@gmail.com> | 2023-08-21 11:31:41 +0800 |
|---|---|---|
| committer | wannacu <wannacu2049@gmail.com> | 2023-08-21 11:47:09 +0800 |
| commit | cd0aad731adede316ea036692ef92669474c1256 (patch) | |
| tree | 0d63281601227510e012a9ec2cf5de86144acdf7 /src/emu | |
| parent | 8e7afcc5fb6c320126c06bc46f7691fb2199634d (diff) | |
| download | box64-cd0aad731adede316ea036692ef92669474c1256.tar.gz box64-cd0aad731adede316ea036692ef92669474c1256.zip | |
[ARM64_DYNAREC] Added 0F F1/F3/F7 opcodes
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64run0f.c | 11 |
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); |