diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-08-10 09:50:11 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-08-10 09:50:11 +0200 |
| commit | 92531929f379543a0705ff250811c778e759ebf1 (patch) | |
| tree | 79a0e240917584a00d06a43a2e4877648f4ba4c8 /src | |
| parent | 0256a6332c742c53feef4332f746a53ef80feaaa (diff) | |
| download | box64-92531929f379543a0705ff250811c778e759ebf1.tar.gz box64-92531929f379543a0705ff250811c778e759ebf1.zip | |
Added 64bits 67 F3 0F 7F opcode ([ARM64_DYNAREC] too)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_67.c | 13 | ||||
| -rw-r--r-- | src/emu/x64run670f.c | 6 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c index ed701795..a5ab323e 100644 --- a/src/dynarec/arm64/dynarec_arm64_67.c +++ b/src/dynarec/arm64/dynarec_arm64_67.c @@ -271,6 +271,19 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin SMWRITE(); } break; + case 2: + INST_NAME("MOVDQU Ex, Gx"); + nextop = F8; + GETGX(v0, 0); + if(MODREG) { + v1 = sse_get_reg_empty(dyn, ninst, x1, nextop&7); + VMOVQ(v1, v0); + } else { + addr = geted32(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, &unscaled, 0xfff<<4, 15, rex, NULL, 0, 0); + VST128(v0, ed, fixedaddress); + SMWRITE(); + } + break; default: DEFAULT; } diff --git a/src/emu/x64run670f.c b/src/emu/x64run670f.c index 0b3f1493..4df0d823 100644 --- a/src/emu/x64run670f.c +++ b/src/emu/x64run670f.c @@ -125,6 +125,12 @@ uintptr_t Run670F(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr) GETGM; EM->q = GM->q; break; + case 2: /* MOVDQU Ex, Gx */ + nextop = F8; + GETEX32(0); + GETGX; + memcpy(EX, GX, 16); + break; default: return 0; } |