about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-09-09 16:02:37 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-09-09 16:02:37 +0200
commit34fcbbd7b7d1da1c8b2705655ac5897afd04c6e8 (patch)
tree9f25956a869dd0bed2af895e73eeb2ed9f7d4316 /src
parentbdde96be954a878cf5b3c607603e407cc1a76bbb (diff)
downloadbox64-34fcbbd7b7d1da1c8b2705655ac5897afd04c6e8.tar.gz
box64-34fcbbd7b7d1da1c8b2705655ac5897afd04c6e8.zip
[TRACE] Better trace for F3 0F 1E FA opcode
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run_private.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c
index 0616b4cf..818e3d18 100644
--- a/src/emu/x64run_private.c
+++ b/src/emu/x64run_private.c
@@ -1261,7 +1261,9 @@ void PrintTrace(x64emu_t* emu, uintptr_t ip, int dynarec)
                 if(!printFunctionAddr(*(uint32_t*)(R_RSP), " STACK_TOP: "))
                     printf_log(LOG_NONE, " STACK_TOP: %p ", (void*)(uintptr_t)*(uint32_t*)(R_RSP));
             } else if(peek==0xF3 && PK(1)==0x0F && PK(2)==0x1E && PK(3)==0xFA && !is32bits) {
-                printFunctionAddr(*(uintptr_t*)(R_RSP), " STACK_TOP: ");
+                uintptr_t nextaddr = *(uintptr_t*)(R_RSP);
+                if(!printFunctionAddr(nextaddr, "=> "))
+                    printf_log(LOG_NONE, " => %p", (void*)nextaddr);
             } else if(peek==0xE8 || peek==0xE9) { // Call & Jmp
                 uintptr_t nextaddr = ip + 5 + PK32(1);
                 printFunctionAddr(nextaddr, "=> ");