diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-12-08 19:59:08 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-12-08 19:59:08 +0100 |
| commit | dff14a868fdfe973243fc52c513d08f769ac2dc4 (patch) | |
| tree | 88795a9f48554058a109f1446068bcc7eace2fc7 /src/libtools | |
| parent | 4304301701b1990f855d30f9874e333ccb233f6a (diff) | |
| download | box64-dff14a868fdfe973243fc52c513d08f769ac2dc4.tar.gz box64-dff14a868fdfe973243fc52c513d08f769ac2dc4.zip | |
Some small fixes for pagesize != 4096
Diffstat (limited to 'src/libtools')
| -rwxr-xr-x | src/libtools/signals.c | 4 |
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) |