diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-09 16:02:37 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-09 16:02:37 +0200 |
| commit | 34fcbbd7b7d1da1c8b2705655ac5897afd04c6e8 (patch) | |
| tree | 9f25956a869dd0bed2af895e73eeb2ed9f7d4316 /src | |
| parent | bdde96be954a878cf5b3c607603e407cc1a76bbb (diff) | |
| download | box64-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.c | 4 |
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, "=> "); |