about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-12-08 19:59:08 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-12-08 19:59:08 +0100
commitdff14a868fdfe973243fc52c513d08f769ac2dc4 (patch)
tree88795a9f48554058a109f1446068bcc7eace2fc7 /src/libtools
parent4304301701b1990f855d30f9874e333ccb233f6a (diff)
downloadbox64-dff14a868fdfe973243fc52c513d08f769ac2dc4.tar.gz
box64-dff14a868fdfe973243fc52c513d08f769ac2dc4.zip
Some small fixes for pagesize != 4096
Diffstat (limited to 'src/libtools')
-rwxr-xr-xsrc/libtools/signals.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index 394c67db..b7594d24 100755
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -798,12 +798,12 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx)
         static uintptr_t repeated_page = 0;
         dynarec_log(LOG_DEBUG, "SIGSEGV with Access error on %p for %p , db=%p(%p), prot=0x%x (old page=%p)\n", pc, addr, db, db?((void*)db->x64_addr):NULL, prot, (void*)repeated_page);
         static int repeated_count = 0;
-        if(repeated_page == ((uintptr_t)addr&~0xfff)) {
+        if(repeated_page == ((uintptr_t)addr&~(box64_pagesize-1))) {
             ++repeated_count;   // Access eoor multiple time on same page, disable dynarec on this page a few time...
             dynarec_log(LOG_DEBUG, "Detecting a Hotpage at %p (%d)\n", (void*)repeated_page, repeated_count);
             AddHotPage(repeated_page);
         } else {
-            repeated_page = (uintptr_t)addr&~0xfff;
+            repeated_page = (uintptr_t)addr&~(box64_pagesize-1);
             repeated_count = 0;
         }
         // access error, unprotect the block (and mark them dirty)