about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-11-06 16:07:21 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-11-06 16:07:21 +0100
commit27013d6a03be585ca3c7c884ea37be3fb2486957 (patch)
treec4736b767da154eb23e30830cdab9585b1700231 /src
parent3ba91a651384b0ea4207e91e206440cae2684db2 (diff)
downloadbox64-27013d6a03be585ca3c7c884ea37be3fb2486957.tar.gz
box64-27013d6a03be585ca3c7c884ea37be3fb2486957.zip
[TRACE] A few more details for some speicifc CALL variant
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run_private.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c
index d0139c0c..dca534a8 100644
--- a/src/emu/x64run_private.c
+++ b/src/emu/x64run_private.c
@@ -1315,16 +1315,16 @@ void PrintTrace(x64emu_t* emu, uintptr_t ip, int dynarec)
                     uintptr_t nextaddr = *(ptr_t*)from_ptrv(R_EBX + PK32(2));
                     printf_log(LOG_NONE, " => %p", (void*)nextaddr);
                     printFunctionAddr(nextaddr, "=> ");
-                } else if(is32bits && PK(1)==0x92) {
-                    uintptr_t nextaddr = *(ptr_t*)from_ptrv(R_EDX + PK32(2));
+                } else if(PK(1)==0x92) {
+                    uintptr_t nextaddr = is32bits?(*(ptr_t*)from_ptrv(R_EDX + PK32(2))):(*(uintptr_t*)(R_RDX + PK32(2)));
                     printf_log(LOG_NONE, " => %p", (void*)nextaddr);
                     printFunctionAddr(nextaddr, "=> ");
-                } else if(is32bits && PK(1)==0x50) {
-                    uintptr_t nextaddr = *(ptr_t*)from_ptrv(R_EAX + PK(2));
+                } else if(PK(1)==0x50) {
+                    uintptr_t nextaddr = is32bits?(*(ptr_t*)from_ptrv(R_EAX + PK(2))):(*(uintptr_t*)(R_RAX + PK(2)));
                     printf_log(LOG_NONE, " => %p", (void*)nextaddr);
                     printFunctionAddr(nextaddr, "=> ");
-                } else if(is32bits && PK(1)==0x52) {
-                    uintptr_t nextaddr = *(ptr_t*)from_ptrv(R_EDX + PK(2));
+                } else if(PK(1)==0x52) {
+                    uintptr_t nextaddr = is32bits?(*(ptr_t*)from_ptrv(R_EDX + PK(2))):(*(uintptr_t*)(R_RDX + PK(2)));
                     printf_log(LOG_NONE, " => %p", (void*)nextaddr);
                     printFunctionAddr(nextaddr, "=> ");
                 } else if(is32bits && PK(1)==0x10) {