diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-03-28 13:34:45 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-03-28 13:34:56 +0200 |
| commit | d73ff21b27b7f2fdca3f817fb37faefe388439d8 (patch) | |
| tree | cfe79810c265024864f845bee0d286df03ab7ae0 /src/libtools/signals.c | |
| parent | 4a90199f63ea2e8ee16d11a20c5b9cc9abd11498 (diff) | |
| download | box64-d73ff21b27b7f2fdca3f817fb37faefe388439d8.tar.gz box64-d73ff21b27b7f2fdca3f817fb37faefe388439d8.zip | |
[DYNAREC] Improved TEST_INTERPRETER with inter-block testing
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; |