diff options
Diffstat (limited to 'src/libtools/signals.c')
| -rwxr-xr-x | src/libtools/signals.c | 9 |
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; |