diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2023-03-13 22:50:48 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-13 15:50:48 +0100 |
| commit | 19a06a875530571167c6915864b7c64b59ade34f (patch) | |
| tree | bc6fbbbd42098179bee26e5f5d7798760c0d26a0 /src | |
| parent | 87790a8d7a5ab462bb624cf633078e56485bbcd0 (diff) | |
| download | box64-19a06a875530571167c6915864b7c64b59ade34f.tar.gz box64-19a06a875530571167c6915864b7c64b59ade34f.zip | |
[RV64_DYNAREC] Fixed scratch register conflict for SUB (#556)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_00.c | 2 | ||||
| -rw-r--r-- | src/dynarec/rv64/rv64_printer.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_00.c b/src/dynarec/rv64/dynarec_rv64_00.c index 2849dfbb..39fa3a7d 100644 --- a/src/dynarec/rv64/dynarec_rv64_00.c +++ b/src/dynarec/rv64/dynarec_rv64_00.c @@ -85,7 +85,7 @@ uintptr_t dynarec64_00(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni SETFLAGS(X_ALL, SF_SET_PENDING); GETED((opcode==0x81)?4:1); if(opcode==0x81) i64 = F32S; else i64 = F8S; - emit_sub32c(dyn, ninst, rex, ed, i64, x2, x3, x4, x5); + emit_sub32c(dyn, ninst, rex, ed, i64, x3, x4, x5, x6); WBACK; break; default: diff --git a/src/dynarec/rv64/rv64_printer.c b/src/dynarec/rv64/rv64_printer.c index ce767298..25804b8d 100644 --- a/src/dynarec/rv64/rv64_printer.c +++ b/src/dynarec/rv64/rv64_printer.c @@ -420,8 +420,8 @@ static inline insn_t insn_ciwtype_read(uint16_t data) #define PRINT_fd_xs1() snprintf(buff, sizeof(buff), "%s\t%s, %s", insn.name, fpnames[insn.rd], gpnames[insn.rs1]); return buff // TODO: display csr name -#define PRINT_rd_csr_rs1() snprintf(buff, sizeof(buff), "%s\t%d, %s", insn.name, RN(rd), insn.csr, RN(rs1)); return buff -#define PRINT_rd_csr_uimm() snprintf(buff, sizeof(buff), "%s\t%d, %d", insn.name, RN(rd), insn.csr, (uint32_t)insn.imm); return buff +#define PRINT_rd_csr_rs1() snprintf(buff, sizeof(buff), "%s\t%s, %d, %s", insn.name, RN(rd), insn.csr, RN(rs1)); return buff +#define PRINT_rd_csr_uimm() snprintf(buff, sizeof(buff), "%s\t%s, %d, %d", insn.name, RN(rd), insn.csr, (uint32_t)insn.imm); return buff const char* rv64_print(uint32_t data, uintptr_t addr) { |