diff options
Diffstat (limited to 'src/libtools')
| -rw-r--r-- | src/libtools/signal32.c | 2 | ||||
| -rw-r--r-- | src/libtools/signals.c | 4 |
2 files changed, 1 insertions, 5 deletions
diff --git a/src/libtools/signal32.c b/src/libtools/signal32.c index cd5f054d..4e6c8e1e 100644 --- a/src/libtools/signal32.c +++ b/src/libtools/signal32.c @@ -400,8 +400,6 @@ uint32_t RunFunctionHandler32(int* exit, int dynarec, i386_ucontext_t* sigcontex int old_cs = R_CS; R_CS = 0x23; - emu->eflags.x64 &= ~(1<<F_TF); // this one needs to cleared - if(dynarec) DynaCall(emu, fnc); else diff --git a/src/libtools/signals.c b/src/libtools/signals.c index bbfa8958..7fa41e7b 100644 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -160,8 +160,6 @@ uint64_t RunFunctionHandler(x64emu_t* emu, int* exit, int dynarec, x64_ucontext_ int old_cs = R_CS; R_CS = 0x33; - emu->eflags.x64 &= ~(1<<F_TF); // this one needs to cleared - if(dynarec) DynaCall(emu, fnc); else @@ -1102,7 +1100,7 @@ void my_sigactionhandler_oldcode_64(x64emu_t* emu, int32_t sig, int simple, sigi int ret; int dynarec = 0; #ifdef DYNAREC - if(sig!=X64_SIGSEGV && !(Locks&is_dyndump_locked) && !(Locks&is_memprot_locked)) + if(!(sig==X64_SIGSEGV || (Locks&is_dyndump_locked) || (Locks&is_memprot_locked))) dynarec = 1; #endif ret = RunFunctionHandler(emu, &exits, dynarec, sigcontext, my_context->signals[info2->si_signo], 3, info2->si_signo, info2, sigcontext); |