about summary refs log tree commit diff stats
path: root/src/dynarec
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-03-12 14:39:07 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-03-12 14:39:07 +0100
commit1af85c69a182fa6539c5690a3feebe9002fd9552 (patch)
treef268bc9ca93813c953510c803293f07f71c42c04 /src/dynarec
parent3087ea0e6136fd1ed0c756e6ea316ce61678fb3a (diff)
downloadbox64-1af85c69a182fa6539c5690a3feebe9002fd9552.tar.gz
box64-1af85c69a182fa6539c5690a3feebe9002fd9552.zip
[DYNAREC] Introduced DYNAREC_DIRTY=2 and changed a profile to use it
Diffstat (limited to 'src/dynarec')
-rw-r--r--src/dynarec/dynarec_native_pass.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_native_pass.c b/src/dynarec/dynarec_native_pass.c
index b91c3074..343093c4 100644
--- a/src/dynarec/dynarec_native_pass.c
+++ b/src/dynarec/dynarec_native_pass.c
@@ -67,10 +67,13 @@ uintptr_t native_pass(dynarec_native_t* dyn, uintptr_t addr, int alternate, int
         #if STEP == 0
         if(cur_page != ((addr)&~(box64_pagesize-1))) {
             cur_page = (addr)&~(box64_pagesize-1);
-            if(!(getProtection(addr)&PROT_READ) || checkInHotPage(addr)) {
+            uint32_t prot = getProtection(addr);
+            if(!(prot&PROT_READ) || checkInHotPage(addr)) {
                 need_epilog = 1;
                 break;
             }
+            if(prot&PROT_NEVERCLEAN)
+                dyn->always_test = 1;
         }
         // This test is here to prevent things like TABLE64 to be out of range
         // native_size is not exact at this point, but it should be larger, not smaller, and not by a huge margin anyway