about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2024-10-12 00:34:40 +0800
committerGitHub <noreply@github.com>2024-10-11 18:34:40 +0200
commitc0c91678babff1b4916aa074cf31663fcba8b46c (patch)
tree065e9a7501cf8ac6a6793e9ad6842c313e312c83 /src
parent7a531ed272b71dff60a5291123f3e4c7905ba3fb (diff)
downloadbox64-c0c91678babff1b4916aa074cf31663fcba8b46c.tar.gz
box64-c0c91678babff1b4916aa074cf31663fcba8b46c.zip
[RV64_DYNAREC] Fixed an issue in CVTTSD2SI for vector (#1925)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f20f_vector.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_f20f_vector.c b/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
index fdce5897..90e3c21b 100644
--- a/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
@@ -124,13 +124,13 @@ uintptr_t dynarec64_F20F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t i
             INST_NAME("CVTTSD2SI Gd, Ex");
             nextop = F8;
             GETGD;
-            SET_ELEMENT_WIDTH(x1, (rex.w ? VECTOR_SEW64 : VECTOR_SEW32), 1);
-            vector_loadmask(dyn, ninst, VMASK, 0b01, x4, 1);
+            SET_ELEMENT_WIDTH(x1, VECTOR_SEW64, 1);
             if (MODREG) {
                 v0 = sse_get_reg_vector(dyn, ninst, x1, (nextop & 7) + (rex.b << 3), 0, dyn->vector_eew);
             } else {
                 SMREAD();
                 v0 = fpu_get_scratch(dyn);
+                vector_loadmask(dyn, ninst, VMASK, 0b01, x4, 1);
                 addr = geted(dyn, addr, ninst, nextop, &ed, x1, x2, &fixedaddress, rex, NULL, 0, 0);
                 VLE_V(v0, ed, dyn->vector_eew, VECTOR_MASKED, VECTOR_NFIELD1);
             }