diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2024-08-10 02:16:52 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-09 20:16:52 +0200 |
| commit | 2a07636623ac8f384c78db43ca02b5041f61edc5 (patch) | |
| tree | a70f4aab9ca5378b2224c15abf23956996bb3e1b | |
| parent | 8893344b7659d64add6c6d3d39b382a962c34de2 (diff) | |
| download | box64-2a07636623ac8f384c78db43ca02b5041f61edc5.tar.gz box64-2a07636623ac8f384c78db43ca02b5041f61edc5.zip | |
[RV64_DYNAREC] Fixed more register conflicts (#1726)
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_00_0.c | 10 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_00_2.c | 4 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_00_3.c | 2 |
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"); |