diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-02-12 19:27:39 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-02-12 19:27:39 +0100 |
| commit | 0c17b55e28dc149e0d6ea146132484eba3787341 (patch) | |
| tree | c38a41a96864f38087595d7ca30b44dc4127fcb9 /src | |
| parent | e2f4ab7700d8fc4432131b27a53fb427243ca1ae (diff) | |
| download | box64-0c17b55e28dc149e0d6ea146132484eba3787341.tar.gz box64-0c17b55e28dc149e0d6ea146132484eba3787341.zip | |
[ARM64_DYNAREC] Fixed some issue with DF and mayset opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_helper.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.h b/src/dynarec/arm64/dynarec_arm64_helper.h index 19f432e0..5e8a2e57 100644 --- a/src/dynarec/arm64/dynarec_arm64_helper.h +++ b/src/dynarec/arm64/dynarec_arm64_helper.h @@ -1086,14 +1086,15 @@ #endif #define SET_DFNONE() \ - do { \ + if(!dyn->insts[ninst].x64.may_set) { \ dyn->f.dfnone_here = 1; \ if (!dyn->f.dfnone) { \ STRw_U12(wZR, xEmu, offsetof(x64emu_t, df)); \ dyn->f.dfnone = 1; \ } \ - } while (0); + } #define SET_DF(S, N) \ + if(!dyn->insts[ninst].x64.may_set) { \ if ((N) != d_none) { \ MOVZw(S, (N)); \ STRw_U12(S, xEmu, offsetof(x64emu_t, df)); \ @@ -1104,7 +1105,8 @@ } \ dyn->f.dfnone = 0; \ } else \ - SET_DFNONE() + SET_DFNONE(); \ + } #ifndef SET_NODF #define SET_NODF() dyn->f.dfnone = 0 #endif |