about summary refs log tree commit diff stats
path: root/src/dynarec/dynarec_native.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-02-01 16:41:16 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-02-01 16:42:16 +0100
commit1344b1837909da6d91153cf686557a4a10bcb468 (patch)
tree4094e4397b3b0c3d7170687ed2f9dd69bba5f5c5 /src/dynarec/dynarec_native.c
parent1deec05f3dfaa93b034d0bb7cf00b0f9d73d4016 (diff)
downloadbox64-1344b1837909da6d91153cf686557a4a10bcb468.tar.gz
box64-1344b1837909da6d91153cf686557a4a10bcb468.zip
[DYNAREC] Handling of memfd_create backed mmap on dynarec (help #1234 but doesn't solve it completly)
Diffstat (limited to 'src/dynarec/dynarec_native.c')
-rw-r--r--src/dynarec/dynarec_native.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c
index 6dfc9c89..46360231 100644
--- a/src/dynarec/dynarec_native.c
+++ b/src/dynarec/dynarec_native.c
@@ -655,6 +655,13 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit
         block->dirty = 1;
         //protectDB(addr, end-addr);
     }
+    if(getProtection(addr)&PROT_NEVERCLEAN) {
+        block->dirty = 1;
+        block->always_test = 1;
+    }
+    if(block->always_test) {
+        dynarec_log(LOG_DEBUG, "Note: block marked as always dirty %p:%ld\n", block->x64_addr, block->x64_size);
+    }
     current_helper = NULL;
     //block->done = 1;
     return (void*)block;