diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64emu.c | 2 | ||||
| -rw-r--r-- | src/emu/x64run_private.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/emu/x64emu.c b/src/emu/x64emu.c index 95077d4a..8ac3e179 100644 --- a/src/emu/x64emu.c +++ b/src/emu/x64emu.c @@ -397,7 +397,7 @@ void ResetFlags(x64emu_t *emu) const char* DumpCPURegs(x64emu_t* emu, uintptr_t ip, int is32bits) { - static char buff[1000]; + static char buff[4096]; static const char* regname[] = {"RAX", "RCX", "RDX", "RBX", "RSP", "RBP", "RSI", "RDI", " R8", " R9", "R10", "R11", "R12", "R13", "R14", "R15"}; static const char* regname32[]={"EAX", "ECX", "EDX", "EBX", "ESP", "EBP", "ESI", "EDI"}; diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c index 5056ff90..296d27a7 100644 --- a/src/emu/x64run_private.c +++ b/src/emu/x64run_private.c @@ -1124,11 +1124,11 @@ void PrintTrace(x64emu_t* emu, uintptr_t ip, int dynarec) printFunctionAddr(nextaddr, "=> "); } else if(peek==0xFF) { if(PK(1)==0x25) { - uintptr_t nextaddr = *(uintptr_t*)(ip + 6 + PK32(2)); + uintptr_t nextaddr = is32bits?(*(uint32_t*)PK32(2)):(*(uintptr_t*)(ip + 6 + PK32(2))); if(!printFunctionAddr(nextaddr, "=> ")) printf_log(LOG_NONE, " => %p", (void*)nextaddr); } else if((PK(1)==0x14) && (PK(2)==0x25)) { - uintptr_t nextaddr = *(uintptr_t*)(uintptr_t)PK32(3); + uintptr_t nextaddr = is32bits?(*(uint32_t*)(uintptr_t)PK32(3)):(*(uintptr_t*)(uintptr_t)PK32(3)); printf_log(LOG_NONE, " => %p", (void*)nextaddr); printFunctionAddr(nextaddr, "=> "); } else if((PK(1)==0x14) && (PK(2)==0xC2) && rex.rex==0x41) { |