diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-02-02 02:43:10 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-01 19:43:10 +0100 |
| commit | 58d8627ceaee88503dce59e0926f04530b74a544 (patch) | |
| tree | 5403a4bda7453f2b41c694524a7ee3467f4c52f0 | |
| parent | 877ca41451259bc586be9770d4dea64dc5bc6ce2 (diff) | |
| download | box64-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.c | 2 |
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); |