about summary refs log tree commit diff stats
path: root/src/dynarec
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-11-30 14:02:28 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-11-30 14:02:28 +0100
commit51aa4b0416fbd9e960b5699dde5f573d89b54ae4 (patch)
treeceabba3bcf4e3a9ffe080fa8063563bd30016cf9 /src/dynarec
parentb0db168fb57dd63e101c99b8c728aff9039a23bc (diff)
downloadbox64-51aa4b0416fbd9e960b5699dde5f573d89b54ae4.tar.gz
box64-51aa4b0416fbd9e960b5699dde5f573d89b54ae4.zip
Added a new memExist helper function and use it instead of getMmapped were it make sense
Diffstat (limited to 'src/dynarec')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_0f.c3
-rw-r--r--src/dynarec/dynarec.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c
index ebe5c4e8..e7a445c9 100644
--- a/src/dynarec/arm64/dynarec_arm64_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_0f.c
@@ -509,8 +509,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             CALL(native_priv, -1);

             LOAD_XEMU_CALL(xRIP);

             jump_to_epilog(dyn, 0, xRIP, ninst);

-            *need_epilog = 0;

-            *ok = 0;

+            // continue the block

             break;

         case 0x31:

             INST_NAME("RDTSC");

diff --git a/src/dynarec/dynarec.c b/src/dynarec/dynarec.c
index 7cf20c4e..265b23f7 100644
--- a/src/dynarec/dynarec.c
+++ b/src/dynarec/dynarec.c
@@ -42,6 +42,9 @@ void* LinkNext(x64emu_t* emu, uintptr_t addr, void* x2, uintptr_t* x3)
     } else if(emu->segs[_CS]==0x23 && addr>0x100000000LL) {
         dynablock_t* db = FindDynablockFromNativeAddress(x2-4);
         printf_log(LOG_NONE, "Warning, jumping to high address %p from %p (db=%p, x64addr=%p/%s)\n", (void*)addr, x2-4, db, db?(void*)getX64Address(db, (uintptr_t)x2-4):NULL, db?getAddrFunctionName(getX64Address(db, (uintptr_t)x2-4)):"(nil)");
+    } else if(!memExist(addr)) {
+        dynablock_t* db = FindDynablockFromNativeAddress(x2-4);
+        printf_log(LOG_NONE, "Warning, jumping to an unmapped address %p from %p (db=%p, x64addr=%p/%s)\n", (void*)addr, x2-4, db, db?(void*)getX64Address(db, (uintptr_t)x2-4):NULL, db?getAddrFunctionName(getX64Address(db, (uintptr_t)x2-4)):"(nil)");
     #endif
     }
     #endif