diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2024-10-12 00:34:40 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-11 18:34:40 +0200 |
| commit | c0c91678babff1b4916aa074cf31663fcba8b46c (patch) | |
| tree | 065e9a7501cf8ac6a6793e9ad6842c313e312c83 /src | |
| parent | 7a531ed272b71dff60a5291123f3e4c7905ba3fb (diff) | |
| download | box64-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.c | 4 |
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); } |