From d0edf2e8ddd264067d6c635fcd042ac9eadc4c78 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Mon, 4 Mar 2024 04:41:31 +0800 Subject: [LA64_DYNAREC] Added more opcodes and more fixes, SuperHexagon is working (#1319) * Made printer slightly better * [SIGNAL] Fixed a typo * Removed useless comma * Another typo * Keep'em in order * Added more opcodes and more fixes * A big fix of GOCOND macro * [LA64_DYNAREC] Added E8 CALL opcode * [LA64_DYNAREC] Added C6 MOV opcode * [LA64_DYNAREC] Added 39 CMP opcode * [LA64_DYNAREC] Added 0F 1F NOP opcode * BEWARE: shift instructions are NOT sign-extended! * More fixes * Try to be safe * Fixed printer * Fixed emitter & printer for B, briing superhexagon back --- src/libtools/signals.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/libtools') diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 1fe7a1de..f4c17edc 100644 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -1571,8 +1571,8 @@ dynarec_log(/*LOG_DEBUG*/LOG_INFO, "Repeated SIGSEGV with Access error on %p for int nptrs; void *buffer[BT_BUF_SIZE]; char **strings; - - #ifndef ANDROID + +#ifndef ANDROID nptrs = backtrace(buffer, BT_BUF_SIZE); strings = backtrace_symbols(buffer, nptrs); if(strings) { @@ -1581,7 +1581,7 @@ dynarec_log(/*LOG_DEBUG*/LOG_INFO, "Repeated SIGSEGV with Access error on %p for free(strings); } else printf_log(log_minimum, "NativeBT: none (%d/%s)\n", errno, strerror(errno)); - #endif +#endif extern int my_backtrace_ip(x64emu_t* emu, void** buffer, int size); // in wrappedlibc extern char** my_backtrace_symbols(x64emu_t* emu, uintptr_t* buffer, int size); // save and set real RIP/RSP @@ -1689,7 +1689,7 @@ dynarec_log(/*LOG_DEBUG*/LOG_INFO, "Repeated SIGSEGV with Access error on %p for shown_regs = 1; for (int i=0; i<16; ++i) { if(!(i%4)) printf_log(log_minimum, "\n"); - printf_log(log_minimum, "%s:0x%016llx ", reg_name[i], p->uc_mcontext.__gregs[16+i]); + printf_log(log_minimum, "%s:0x%016llx ", reg_name[i], p->uc_mcontext.__gregs[12+i]); } printf_log(log_minimum, "\n"); for (int i=0; i<6; ++i) -- cgit 1.4.1