about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-04-21 14:13:56 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-04-21 14:13:56 +0200
commit302b6493e2e84de7e01a0479c7006c76322c00c4 (patch)
tree2746abe7983ade6f71267f59105175b5d6710c5d /src
parent20ea2987a8f6a373e1d982797277323f84b2cc36 (diff)
downloadbox64-302b6493e2e84de7e01a0479c7006c76322c00c4.tar.gz
box64-302b6493e2e84de7e01a0479c7006c76322c00c4.zip
[ARM64_DYNAREC] Fixed potential issue with (V)LDDQU opcode
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c4
-rw-r--r--src/dynarec/arm64/dynarec_arm64_f20f.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c
index a94574a8..f1e03d20 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c
@@ -586,7 +586,7 @@ uintptr_t dynarec64_AVX_F2_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip,
             break;
 
         case 0xF0:
-            INST_NAME("LDDQU Gx,Ex");
+            INST_NAME("VLDDQU Gx,Ex");
             nextop = F8;
             GETG;
             if(MODREG) {
@@ -600,7 +600,7 @@ uintptr_t dynarec64_AVX_F2_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip,
             } else {
                 v0 = sse_get_reg_empty(dyn, ninst, x1, gd);
                 SMREAD();
-                addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, NULL, 0xffe<<4, 7, rex, NULL, 0, 0);
+                addr = geted(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, NULL, 0xffe<<4, 15, rex, NULL, 0, 0);
                 VLDR128_U12(v0, ed, fixedaddress);
                 v0 = ymm_get_reg_empty(dyn, ninst, x1, gd, -1, -1, -1);
                 VLDR128_U12(v0, ed, fixedaddress+16);
diff --git a/src/dynarec/arm64/dynarec_arm64_f20f.c b/src/dynarec/arm64/dynarec_arm64_f20f.c
index d329f560..59154259 100644
--- a/src/dynarec/arm64/dynarec_arm64_f20f.c
+++ b/src/dynarec/arm64/dynarec_arm64_f20f.c
@@ -603,7 +603,7 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
             } else {

                 v0 = sse_get_reg_empty(dyn, ninst, x1, gd);

                 SMREAD();

-                addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, &unscaled, 0xfff<<4, 7, rex, NULL, 0, 0);

+                addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, &unscaled, 0xfff<<4, 15, rex, NULL, 0, 0);

                 VLD128(v0, ed, fixedaddress);

             }

             break;