about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-02-02 02:43:10 +0800
committerGitHub <noreply@github.com>2025-02-01 19:43:10 +0100
commit58d8627ceaee88503dce59e0926f04530b74a544 (patch)
tree5403a4bda7453f2b41c694524a7ee3467f4c52f0
parent877ca41451259bc586be9770d4dea64dc5bc6ce2 (diff)
downloadbox64-58d8627ceaee88503dce59e0926f04530b74a544.tar.gz
box64-58d8627ceaee88503dce59e0926f04530b74a544.zip
[RV64_DYNAREC] Fixed F2 0F E6 opcode for vector (#2310)
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f20f_vector.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_f20f_vector.c b/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
index b49cf50a..ed9790f6 100644
--- a/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
@@ -567,7 +567,9 @@ uintptr_t dynarec64_F20F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t i
             }
             vector_vsetvli(dyn, ninst, x1, VECTOR_SEW32, VECTOR_LMUL1, 0.5);
             d0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
+            u8 = sse_setround(dyn, ninst, x6, x4);
             VFNCVT_X_F_W(d0, d1, VECTOR_UNMASKED);
+            x87_restoreround(dyn, ninst, u8);
             vector_vsetvli(dyn, ninst, x1, VECTOR_SEW64, VECTOR_LMUL1, 1);
             if (!rv64_xtheadvector) VXOR_VV(v0, v0, v0, VECTOR_UNMASKED);
             VMV_X_S(x4, d0);