diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-03-01 20:35:15 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-03-01 20:35:15 +0100 |
| commit | 8bf54eda562dc2f1c4ae74c8122d3b7be98f2d22 (patch) | |
| tree | 3ad15065da889167f15fcd80614a600988f16adc | |
| parent | c58adce8f60c4fb8b00ed0cedcc4a69f0dc973ff (diff) | |
| download | box64-8bf54eda562dc2f1c4ae74c8122d3b7be98f2d22.tar.gz box64-8bf54eda562dc2f1c4ae74c8122d3b7be98f2d22.zip | |
Added 66 F8/F9 ([ARM64_DYNAREC] too)
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_66.c | 12 | ||||
| -rw-r--r-- | src/emu/x64run66.c | 8 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_66.c b/src/dynarec/arm64/dynarec_arm64_66.c index a4d19285..ce0e14d3 100644 --- a/src/dynarec/arm64/dynarec_arm64_66.c +++ b/src/dynarec/arm64/dynarec_arm64_66.c @@ -1343,6 +1343,18 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin break; } break; + case 0xF8: + INST_NAME("CLC"); + SETFLAGS(X_CF, SF_SUBSET); + SET_DFNONE(x1); + BFCx(xFlags, F_CF, 1); + break; + case 0xF9: + INST_NAME("STC"); + SETFLAGS(X_CF, SF_SUBSET); + SET_DFNONE(x1); + ORRx_mask(xFlags, xFlags, 1, 0, 0); // xFlags | 1 + break; case 0xFF: nextop = F8; diff --git a/src/emu/x64run66.c b/src/emu/x64run66.c index e26eb379..1b826126 100644 --- a/src/emu/x64run66.c +++ b/src/emu/x64run66.c @@ -869,6 +869,14 @@ uintptr_t Run66(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr) } } break; + case 0xF8: /* CLC */ + CHECK_FLAGS(emu); + CLEAR_FLAG(F_CF); + break; + case 0xF9: /* STC */ + CHECK_FLAGS(emu); + SET_FLAG(F_CF); + break; case 0xFF: /* GRP 5 Ew */ nextop = F8; |