diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2023-11-20 18:06:49 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-20 11:06:49 +0100 |
| commit | 572a84c19bd1bf96710aded944c50a8b1b85a35c (patch) | |
| tree | 7dc9bad5c41991db28e1a18ef7f0e54c4acee6ee /src | |
| parent | 8fe46092c0ed5479b8143b923220010433669caa (diff) | |
| download | box64-572a84c19bd1bf96710aded944c50a8b1b85a35c.tar.gz box64-572a84c19bd1bf96710aded944c50a8b1b85a35c.zip | |
[RV64_DYNAREC] Added FD STD, fixed FC CLD and F3 A4 REP MOVSB (for minipad2) (#1075)
* [RV64_DYNAREC] Added FD STD opcode * [RV64_DYNAREC] Fixed F3 A4 REP MOVSB opcode
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_00_2.c | 2 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_00_3.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_00_2.c b/src/dynarec/rv64/dynarec_rv64_00_2.c index b2a0c420..11c24bc8 100644 --- a/src/dynarec/rv64/dynarec_rv64_00_2.c +++ b/src/dynarec/rv64/dynarec_rv64_00_2.c @@ -556,7 +556,7 @@ uintptr_t dynarec64_00_2(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int B_NEXT_nocond; MARK2; // Part with DF==1 LBU(x1, xRSI, 0); - LBU(x1, xRDI, 0); + SB(x1, xRDI, 0); SUBI(xRSI, xRSI, 1); SUBI(xRDI, xRDI, 1); SUBI(xRCX, xRCX, 1); diff --git a/src/dynarec/rv64/dynarec_rv64_00_3.c b/src/dynarec/rv64/dynarec_rv64_00_3.c index 39a1aab9..ddc78d67 100644 --- a/src/dynarec/rv64/dynarec_rv64_00_3.c +++ b/src/dynarec/rv64/dynarec_rv64_00_3.c @@ -1076,7 +1076,11 @@ uintptr_t dynarec64_00_3(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int break; case 0xFC: INST_NAME("CLD"); - ANDI(xFlags, xFlags, ~(1<<F_CF)); + ANDI(xFlags, xFlags, ~(1 << F_DF)); + break; + case 0xFD: + INST_NAME("STD"); + ORI(xFlags, xFlags, 1 << F_DF); break; case 0xFE: nextop = F8; |