about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-07-21 10:52:58 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-07-21 10:52:58 +0200
commit43de5afcf6b7803c08066bdce2214de901b8dbe9 (patch)
tree305c0c4719f109755b5aa214437ce87604d353c4
parentfb400359573ee805e557823a319a79ffd017bcda (diff)
downloadbox64-43de5afcf6b7803c08066bdce2214de901b8dbe9.tar.gz
box64-43de5afcf6b7803c08066bdce2214de901b8dbe9.zip
Improved TF handling
-rw-r--r--src/emu/x64run.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index 126573dc..fecb1311 100644
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -2176,10 +2176,11 @@ x64emurun:
         }
 #ifndef TEST_INTERPRETER
         // check the TRACE flag before going to next
-        if(ACCESS_FLAG(F_TF)) {
-            if(tf_next) {
+        if(ACCESS_FLAG(F_TF) || (tf_next<0)) {
+            if(tf_next>0) {
                 tf_next = 0;
             } else {
+                tf_next = 0;
                 R_RIP = addr;
                 emit_signal(emu, SIGTRAP, (void*)addr, 1);
                 if(emu->quit) goto fini;