diff options
| author | phorcys <phorcys@126.com> | 2025-08-15 06:13:16 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-15 00:13:16 +0200 |
| commit | 5144a2e2864b55ba4b3b49844fe400795b5039dd (patch) | |
| tree | 8a998599ac7890e0c90ca13bb60fe868c6b7cdbc /src | |
| parent | febaf31b93400e311eb0e732b4af7873834b8a98 (diff) | |
| download | box64-5144a2e2864b55ba4b3b49844fe400795b5039dd.tar.gz box64-5144a2e2864b55ba4b3b49844fe400795b5039dd.zip | |
[LA64_DYNAREC] Fix VMOVNTDQA. (#2934)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_avx_66_0f38.c | 16 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_avx_66_0f3a.c | 16 |
2 files changed, 16 insertions, 16 deletions
diff --git a/src/dynarec/la64/dynarec_la64_avx_66_0f38.c b/src/dynarec/la64/dynarec_la64_avx_66_0f38.c index 0ac5f042..d2afd48c 100644 --- a/src/dynarec/la64/dynarec_la64_avx_66_0f38.c +++ b/src/dynarec/la64/dynarec_la64_avx_66_0f38.c @@ -449,6 +449,22 @@ uintptr_t dynarec64_AVX_66_0F38(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t i GETGY_empty_VYEY_xy(v0, v1, v2, 0); VSEQxy(D, v0, v2, v1); break; + case 0x2A: + INST_NAME("VMOVNTDQA Gx, Ex"); + nextop = F8; + if (MODREG) { + DEFAULT; + } else { + GETGYxy_empty(q0); + SMREAD(); + addr = geted(dyn, addr, ninst, nextop, &ed, x2, x1, &fixedaddress, rex, NULL, 0, 0); + if (vex.l) { + XVLD(q0, ed, fixedaddress); + } else { + VLD(q0, ed, fixedaddress); + } + } + break; case 0x2B: INST_NAME("VPACKUSDW Gx, Vx, Ex"); nextop = F8; diff --git a/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c b/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c index 1d1ffad6..c91eb1bc 100644 --- a/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c +++ b/src/dynarec/la64/dynarec_la64_avx_66_0f3a.c @@ -589,22 +589,6 @@ uintptr_t dynarec64_AVX_66_0F3A(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t i VINSGR2VR_W(v0, ed, (u8 & 0x3)); } break; - case 0x2A: - INST_NAME("VMOVNTDQA Gx, Ex"); - nextop = F8; - if (MODREG) { - DEFAULT; - } else { - GETGYxy_empty(q0); - SMREAD(); - addr = geted(dyn, addr, ninst, nextop, &ed, x2, x1, &fixedaddress, rex, NULL, 0, 0); - if (vex.l) { - XVLD(q0, ed, fixedaddress); - } else { - VLD(q0, ed, fixedaddress); - } - } - break; case 0x40: INST_NAME("VDPPS Gx, Vx, Ex, Ib"); nextop = F8; |