about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-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;