about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2024-08-10 02:16:52 +0800
committerGitHub <noreply@github.com>2024-08-09 20:16:52 +0200
commit2a07636623ac8f384c78db43ca02b5041f61edc5 (patch)
treea70f4aab9ca5378b2224c15abf23956996bb3e1b /src
parent8893344b7659d64add6c6d3d39b382a962c34de2 (diff)
downloadbox64-2a07636623ac8f384c78db43ca02b5041f61edc5.tar.gz
box64-2a07636623ac8f384c78db43ca02b5041f61edc5.zip
[RV64_DYNAREC] Fixed more register conflicts (#1726)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_0.c10
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_2.c4
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_3.c2
3 files changed, 8 insertions, 8 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_00_0.c b/src/dynarec/rv64/dynarec_rv64_00_0.c
index 716671d5..24eabbb9 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_0.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_0.c
@@ -192,7 +192,7 @@ uintptr_t dynarec64_00_0(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             nextop = F8;
             GETEB(x1, 0);
             GETGB(x2);
-            emit_adc8(dyn, ninst, x1, x2, x4, x5, x3);
+            emit_adc8(dyn, ninst, x1, x2, x4, x5, x6);
             EBBACK(x5, 0);
             break;
         case 0x11:
@@ -212,7 +212,7 @@ uintptr_t dynarec64_00_0(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             nextop = F8;
             GETEB(x2, 0);
             GETGB(x1);
-            emit_adc8(dyn, ninst, x1, x2, x4, x3, x5);
+            emit_adc8(dyn, ninst, x1, x2, x4, x6, x5);
             GBBACK(x5);
             break;
         case 0x13:
@@ -290,7 +290,7 @@ uintptr_t dynarec64_00_0(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             nextop = F8;
             GETEB(x2, 0);
             GETGB(x1);
-            emit_sbb8(dyn, ninst, x1, x2, x3, x4, x5);
+            emit_sbb8(dyn, ninst, x1, x2, x6, x4, x5);
             GBBACK(x5);
             break;
         case 0x1B:
@@ -502,7 +502,7 @@ uintptr_t dynarec64_00_0(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             nextop = F8;
             GETEB(x1, 0);
             GETGB(x2);
-            emit_cmp8(dyn, ninst, x1, x2, x3, x4, x5, x6);
+            emit_cmp8(dyn, ninst, x1, x2, x9, x4, x5, x6);
             break;
         case 0x39:
             INST_NAME("CMP Ed, Gd");
@@ -518,7 +518,7 @@ uintptr_t dynarec64_00_0(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             nextop = F8;
             GETEB(x1, 0);
             GETGB(x2);
-            emit_cmp8(dyn, ninst, x2, x1, x3, x4, x5, x6);
+            emit_cmp8(dyn, ninst, x2, x1, x9, x4, x5, x6);
             break;
         case 0x3B:
             INST_NAME("CMP Gd, Ed");
diff --git a/src/dynarec/rv64/dynarec_rv64_00_2.c b/src/dynarec/rv64/dynarec_rv64_00_2.c
index f2f7d232..e0a841ca 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_2.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_2.c
@@ -118,7 +118,7 @@ uintptr_t dynarec64_00_2(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
                     u8 = F8;
                     if(u8) {
                         ADDI(x2, xZR, u8);
-                        emit_cmp8(dyn, ninst, x1, x2, x3, x4, x5, x6);
+                        emit_cmp8(dyn, ninst, x1, x2, x9, x4, x5, x6);
                     } else {
                         emit_cmp8_0(dyn, ninst, x1, x3, x4);
                     }
@@ -215,7 +215,7 @@ uintptr_t dynarec64_00_2(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             nextop=F8;
             GETEB(x1, 0);
             GETGB(x2);
-            emit_test8(dyn, ninst, x1, x2, x3, x4, x5);
+            emit_test8(dyn, ninst, x1, x2, x6, x4, x5);
             break;
         case 0x85:
             INST_NAME("TEST Ed, Gd");
diff --git a/src/dynarec/rv64/dynarec_rv64_00_3.c b/src/dynarec/rv64/dynarec_rv64_00_3.c
index 6e1990bc..15346729 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_3.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_3.c
@@ -1018,7 +1018,7 @@ uintptr_t dynarec64_00_3(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
                     GETEB(x1, 1);
                     u8 = F8;
                     MOV32w(x2, u8);
-                    emit_test8(dyn, ninst, x1, x2, x3, x4, x5);
+                    emit_test8(dyn, ninst, x1, x2, x6, x4, x5);
                     break;
                 case 2:
                     INST_NAME("NOT Eb");