about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2024-11-27 03:58:12 +0800
committerGitHub <noreply@github.com>2024-11-26 20:58:12 +0100
commitbc9086551bf73206a564d6ddcf2f6a0278d11457 (patch)
treed42a9249f99938ae3cfa645040a99d2f2b2acecf /src
parentf9f0c99c1b3e3928454fbe7848220180a0ede92e (diff)
downloadbox64-bc9086551bf73206a564d6ddcf2f6a0278d11457.tar.gz
box64-bc9086551bf73206a564d6ddcf2f6a0278d11457.zip
[RV64_DYNAREC] Fixed more regressions for vector (#2082)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/dynarec_rv64_0f_vector.c8
-rw-r--r--src/dynarec/rv64/dynarec_rv64_660f_vector.c4
2 files changed, 6 insertions, 6 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_0f_vector.c b/src/dynarec/rv64/dynarec_rv64_0f_vector.c
index 51a37da1..5018a2e6 100644
--- a/src/dynarec/rv64/dynarec_rv64_0f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_0f_vector.c
@@ -589,7 +589,7 @@ uintptr_t dynarec64_0F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip,
             GETEM_vector(q1, 0);
             SET_ELEMENT_WIDTH(x1, VECTOR_SEW8, 1);
             v0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
-            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL1);
+            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             d0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             VSLIDEDOWN_VI(v0, q0, 4, VECTOR_UNMASKED);
             VSLIDEDOWN_VI(v1, q1, 4, VECTOR_UNMASKED);
@@ -607,7 +607,7 @@ uintptr_t dynarec64_0F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip,
             GETEM_vector(q1, 0);
             SET_ELEMENT_WIDTH(x1, VECTOR_SEW16, 1);
             v0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
-            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL1);
+            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             d0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             VSLIDEDOWN_VI(v0, q0, 2, VECTOR_UNMASKED);
             VSLIDEDOWN_VI(v1, q1, 2, VECTOR_UNMASKED);
@@ -626,7 +626,7 @@ uintptr_t dynarec64_0F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip,
             SET_ELEMENT_WIDTH(x1, VECTOR_SEW32, 1);
             MOV32w(x2, 32);
             v0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
-            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL1);
+            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             d0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             VSLIDEDOWN_VI(v0, q0, 1, VECTOR_UNMASKED);
             VSLIDEDOWN_VI(v1, q1, 1, VECTOR_UNMASKED);
@@ -1060,7 +1060,7 @@ uintptr_t dynarec64_0F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip,
             GETGM_vector(v0);
             SET_ELEMENT_WIDTH(x1, VECTOR_SEW64, 1);
             GETEM_vector(v1, 0);
-            q1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL1);
+            q1 = fpu_get_scratch(dyn);
             q0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             ADDI(x3, xZR, 32);
             SET_ELEMENT_WIDTH(x1, VECTOR_SEW16, 1);
diff --git a/src/dynarec/rv64/dynarec_rv64_660f_vector.c b/src/dynarec/rv64/dynarec_rv64_660f_vector.c
index ed29f3a8..9c4c90f5 100644
--- a/src/dynarec/rv64/dynarec_rv64_660f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_660f_vector.c
@@ -1249,7 +1249,7 @@ uintptr_t dynarec64_660F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t i
             GETGX_vector(q0, 1, dyn->vector_eew);
             GETEX_vector(q1, 0, 0, dyn->vector_eew);
             v0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
-            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL1);
+            v1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             d0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             VSLIDEDOWN_VI(v0, q0, s8, VECTOR_UNMASKED);
             VSLIDEDOWN_VI(v1, q1, s8, VECTOR_UNMASKED);
@@ -2182,7 +2182,7 @@ uintptr_t dynarec64_660F_vector(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t i
             SET_ELEMENT_WIDTH(x1, VECTOR_SEW16, 1);
             GETGX_vector(v0, 1, VECTOR_SEW16);
             GETEX_vector(v1, 0, 0, VECTOR_SEW16);
-            q1 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL1);
+            q1 = fpu_get_scratch(dyn);
             q0 = fpu_get_scratch_lmul(dyn, VECTOR_LMUL2);
             ADDI(x3, xZR, 32);
             SET_ELEMENT_WIDTH(x1, VECTOR_SEW16, 1);