about summary refs log tree commit diff stats
path: root/src/libtools/signals.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-03-28 13:34:45 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-03-28 13:34:56 +0200
commitd73ff21b27b7f2fdca3f817fb37faefe388439d8 (patch)
treecfe79810c265024864f845bee0d286df03ab7ae0 /src/libtools/signals.c
parent4a90199f63ea2e8ee16d11a20c5b9cc9abd11498 (diff)
downloadbox64-d73ff21b27b7f2fdca3f817fb37faefe388439d8.tar.gz
box64-d73ff21b27b7f2fdca3f817fb37faefe388439d8.zip
[DYNAREC] Improved TEST_INTERPRETER with inter-block testing
Diffstat (limited to 'src/libtools/signals.c')
-rwxr-xr-xsrc/libtools/signals.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index 9526f49b..df715a0f 100755
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -291,6 +291,10 @@ uint64_t RunFunctionHandler(int* exit, x64_ucontext_t* sigcontext, uintptr_t fnc
 #endif
 
     x64emu_t *emu = thread_get_emu();
+    #ifdef DYNAREC
+    if(box64_dynarec_test)
+        emu->test.test = 0;
+    #endif
 
     printf_log(LOG_DEBUG, "%04d|signal function handler %p called, RSP=%p\n", GetTID(), (void*)fnc, (void*)R_RSP);
     
@@ -326,6 +330,11 @@ uint64_t RunFunctionHandler(int* exit, x64_ucontext_t* sigcontext, uintptr_t fnc
 
     emu->quitonlongjmp = oldquitonlongjmp;
 
+    #ifdef DYNAREC
+    if(box64_dynarec_test)
+        emu->test.test = 0;
+    #endif
+
     if(emu->longjmp) {
         // longjmp inside signal handler, lets grab all relevent value and do the actual longjmp in the signal handler
         emu->longjmp = 0;