about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-04-16 10:22:22 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-04-16 10:22:22 +0200
commit3c84242cf2be8e586666f56ea4cd4c6a792fff45 (patch)
treeb372f16e8b17a2106e0c80a4d74dff66d6bebdf3 /src
parent3faf66a36bd02eea7d1e6e338f8de4151a3593fd (diff)
downloadbox64-3c84242cf2be8e586666f56ea4cd4c6a792fff45.tar.gz
box64-3c84242cf2be8e586666f56ea4cd4c6a792fff45.zip
[DYNAREC] Fixed an issue with internal loop to 1st instruction that then use last_ip (fixes Geekbench 5)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_native_pass.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_native_pass.c b/src/dynarec/dynarec_native_pass.c
index f46b3623..e4c5d047 100755
--- a/src/dynarec/dynarec_native_pass.c
+++ b/src/dynarec/dynarec_native_pass.c
@@ -41,7 +41,7 @@ uintptr_t native_pass(dynarec_native_t* dyn, uintptr_t addr)
     dyn->f.dfnone = 0;
     fpu_reset(dyn);
     int reset_n = -1;
-    dyn->last_ip = ip;  // RIP is always set at start of block!
+    dyn->last_ip = (dyn->insts && dyn->insts[0].pred_sz)?0:ip;  // RIP is always set at start of block unless there is a predecessor!
     // ok, go now
     INIT;
     while(ok) {