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>2022-12-01 17:15:46 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-12-01 17:15:46 +0100
commit3f007d2dbb2b0319d9c2ff4ef6dff10d77a9b6ab (patch)
tree8d5c8ed93420b9eed74938a82dcaef61f13da87e /src/dynarec/dynarec_native.c
parentcde68af79aa0c05dedaed7f440e7023a349501fb (diff)
downloadbox64-3f007d2dbb2b0319d9c2ff4ef6dff10d77a9b6ab.tar.gz
box64-3f007d2dbb2b0319d9c2ff4ef6dff10d77a9b6ab.zip
[DYNAREC] More control over HotPage handling with BOX64_DYNARC_HOTPAGE
Diffstat (limited to 'src/dynarec/dynarec_native.c')
-rwxr-xr-xsrc/dynarec/dynarec_native.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c
index b4c93c74..2f58b2d8 100755
--- a/src/dynarec/dynarec_native.c
+++ b/src/dynarec/dynarec_native.c
@@ -457,6 +457,7 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr) {
     }
     if(!isprotectedDB(addr, 1)) {
         dynarec_log(LOG_INFO, "Warning, write on current page on pass0, aborting dynablock creation (%p)\n", (void*)addr);
+        AddHotPage(addr);
         CancelBlock64();
         return NULL;
     }
@@ -583,12 +584,14 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr) {
     block->hash = X31_hash_code(block->x64_addr, block->x64_size);
     // Check if something changed, to abbort if it as
     if((block->hash != hash)) {
-        dynarec_log(LOG_INFO, "Warning, a block changed while beeing processed hash(%p:%ld)=%x/%x\n", block->x64_addr, block->x64_size, block->hash, hash);
+        dynarec_log(LOG_DEBUG, "Warning, a block changed while beeing processed hash(%p:%ld)=%x/%x\n", block->x64_addr, block->x64_size, block->hash, hash);
+        AddHotPage(addr);
         CancelBlock64();
         return NULL;
     }
     if(!isprotectedDB(addr, end-addr)) {
-        dynarec_log(LOG_INFO, "Warning, block unprotected while beeing processed %p:%ld, cancelling\n", block->x64_addr, block->x64_size);
+        dynarec_log(LOG_DEBUG, "Warning, block unprotected while beeing processed %p:%ld, cancelling\n", block->x64_addr, block->x64_size);
+        AddHotPage(addr);
         CancelBlock64();
         return NULL;
         //protectDB(addr, end-addr);