about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-04-10 19:00:47 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-04-10 19:00:47 +0200
commit51d9eb966db1ef22af0eaa5848556d74395bcf5d (patch)
tree305c551a6623e2d877a5a91528de17640c2279b2 /src/libtools
parent310d4016fa9632a575e2c3ba673206f29b76ae23 (diff)
downloadbox64-51d9eb966db1ef22af0eaa5848556d74395bcf5d.tar.gz
box64-51d9eb966db1ef22af0eaa5848556d74395bcf5d.zip
[DYNAREC] Speedup a bit DYNAREC_DIRTY=1
Diffstat (limited to 'src/libtools')
-rw-r--r--src/libtools/signals.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index c85c4401..aa44d308 100644
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -1790,9 +1790,9 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx)
         }
         // access error, unprotect the block (and mark them dirty)
         unprotectDB((uintptr_t)addr, 1, 1);    // unprotect 1 byte... But then, the whole page will be unprotected
-        if(db) CheckHotPage((uintptr_t)addr);
-        int db_need_test = db?getNeedTest((uintptr_t)db->x64_addr):0;
-        if(db && ((addr>=db->x64_addr && addr<(db->x64_addr+db->x64_size)) || (db_need_test && !BOX64ENV(dynarec_dirty)))) {
+        CheckHotPage((uintptr_t)addr);
+        int db_need_test = (db && !BOX64ENV(dynarec_dirty))?getNeedTest((uintptr_t)db->x64_addr):0;
+        if(db && ((addr>=db->x64_addr && addr<(db->x64_addr+db->x64_size)) || db_need_test)) {
             emu = getEmuSignal(emu, p, db);
             // dynablock got auto-dirty! need to get out of it!!!
             if(emu->jmpbuf) {