about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-01-29 22:46:52 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-01-29 22:46:52 +0100
commit1ad38124dff35eb3d3c2bb59833f559251763070 (patch)
treea7491514c2313f78f65eda301d596df56aa34142 /src
parentaaa4fd1265603e004fb68f387d10cc6ef6808ddf (diff)
downloadbox64-1ad38124dff35eb3d3c2bb59833f559251763070.tar.gz
box64-1ad38124dff35eb3d3c2bb59833f559251763070.zip
[32BITS] Small improvment to E8/E9 opcode to trucate address to 32bits
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index 77543e08..ceb38f9a 100644
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -1705,13 +1705,19 @@ x64emurun:
                 Push32(emu, addr);
             else
                 Push64(emu, addr);
-            addr += tmp32s;
+            if(rex.is32bits)
+                addr = (uint32_t)(addr+tmp32s);
+            else
+                addr += tmp32s;
             addr = (uintptr_t)getAlternate((void*)addr);
             STEP2
             break;
         case 0xE9:                      /* JMP Id */
             tmp32s = F32S; // jmp is relative
-            addr += tmp32s;
+            if(rex.is32bits)
+                addr = (uint32_t)(addr+tmp32s);
+            else
+                addr += tmp32s;
             addr = (uintptr_t)getAlternate((void*)addr);
             STEP2
             break;