diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-01-29 22:46:52 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-01-29 22:46:52 +0100 |
| commit | 1ad38124dff35eb3d3c2bb59833f559251763070 (patch) | |
| tree | a7491514c2313f78f65eda301d596df56aa34142 /src | |
| parent | aaa4fd1265603e004fb68f387d10cc6ef6808ddf (diff) | |
| download | box64-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.c | 10 |
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; |