From 1af85c69a182fa6539c5690a3feebe9002fd9552 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Wed, 12 Mar 2025 14:39:07 +0100 Subject: [DYNAREC] Introduced DYNAREC_DIRTY=2 and changed a profile to use it --- src/dynarec/dynarec_native_pass.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/dynarec') 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 -- cgit 1.4.1