about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-05-15 20:19:33 +0800
committerGitHub <noreply@github.com>2025-05-15 14:19:33 +0200
commit3dc00e926235a7f987bc4ad2e3d912038fb22716 (patch)
treee9c8fee5254fa553ef01569b90bb20d54534522d /src
parent649af04fa540ff2d5cb581e2d2f8213be1381fc0 (diff)
downloadbox64-3dc00e926235a7f987bc4ad2e3d912038fb22716.tar.gz
box64-3dc00e926235a7f987bc4ad2e3d912038fb22716.zip
[DYNAREC] Fixed alternate address testing when retriving dynablock (#2638)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/dynablock.c4
-rw-r--r--src/dynarec/dynarec.c3
2 files changed, 3 insertions, 4 deletions
diff --git a/src/dynarec/dynablock.c b/src/dynarec/dynablock.c
index 097d16d9..4ecdf768 100644
--- a/src/dynarec/dynablock.c
+++ b/src/dynarec/dynablock.c
@@ -198,7 +198,7 @@ void cancelFillBlock()
 */
 static dynablock_t* internalDBGetBlock(x64emu_t* emu, uintptr_t addr, uintptr_t filladdr, int create, int need_lock, int is32bits)
 {
-    if(hasAlternate((void*)addr))
+    if (hasAlternate((void*)filladdr))
         return NULL;
     const uint32_t req_prot = (box64_pagesize==4096)?(PROT_EXEC|PROT_READ):PROT_READ;
     dynablock_t* block = getDB(addr);
@@ -417,4 +417,4 @@ int getX64AddressInst(dynablock_t* db, uintptr_t x64pc)
         ret++;
     } while (db->instsize[i].x64 || db->instsize[i].nat);
     return ret;
-}
\ No newline at end of file
+}
diff --git a/src/dynarec/dynarec.c b/src/dynarec/dynarec.c
index c0f712eb..fc24a121 100644
--- a/src/dynarec/dynarec.c
+++ b/src/dynarec/dynarec.c
@@ -52,8 +52,7 @@ void* LinkNext(x64emu_t* emu, uintptr_t addr, void* x2, uintptr_t* x3)
     void * jblock;
     dynablock_t* block = NULL;
     if(hasAlternate((void*)addr)) {
-        printf_log(LOG_DEBUG, "Jmp address has alternate: %p", (void*)addr);
-        if (BOX64ENV(log)<LOG_DEBUG) dynarec_log(LOG_INFO, "Jmp address has alternate: %p", (void*)addr);
+        printf_log(LOG_DEBUG, "Jmp address has alternate: %p\n", (void*)addr);
         uintptr_t old_addr = addr;
         addr = (uintptr_t)getAlternate((void*)addr);    // set new address
         R_RIP = addr;   // but also new RIP!