diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-17 16:39:54 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-17 16:39:54 +0200 |
| commit | d7c3c3fcf9079bcd24a4221842a8477b89754920 (patch) | |
| tree | 56277ac561a863807dd0334b53d53c2ab7e00bb6 /src/dynarec | |
| parent | 7d77a4b31f222e337e8f873da670b6e5fcdeda57 (diff) | |
| download | box64-d7c3c3fcf9079bcd24a4221842a8477b89754920.tar.gz box64-d7c3c3fcf9079bcd24a4221842a8477b89754920.zip | |
Save flags and defered flags when runing EmuCall ([DYNAREC] Same for DynaCall)
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/dynarec.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/dynarec/dynarec.c b/src/dynarec/dynarec.c index a9708c84..5dddc23b 100644 --- a/src/dynarec/dynarec.c +++ b/src/dynarec/dynarec.c @@ -100,6 +100,7 @@ void DynaCall(x64emu_t* emu, uintptr_t addr) uint64_t old_rsi = R_RSI; uint64_t old_rbp = R_RBP; uint64_t old_rip = R_RIP; + x64flags_t old_eflags = emu->eflags; // save defered flags deferred_flags_t old_df = emu->df; multiuint_t old_op1 = emu->op1; @@ -137,6 +138,7 @@ void DynaCall(x64emu_t* emu, uintptr_t addr) emu->res_sav = old_res_sav; emu->df_sav = old_df_sav; // and the old registers + emu->eflags = old_eflags; R_RBX = old_rbx; R_RDI = old_rdi; R_RSI = old_rsi; |