mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-12-17 07:37:02 +00:00
Bump CI clang version to 15 + workaround for unsafe fiber optimizations (#982)
This commit is contained in:
parent
8a4abb8bbb
commit
8bb7ce098c
31 changed files with 150 additions and 132 deletions
|
|
@ -73,16 +73,17 @@ void ExceptionHandler_LogGeneralInfo()
|
|||
// info about active PPC instance:
|
||||
CrashLog_WriteLine("");
|
||||
CrashLog_WriteHeader("Active PPC instance");
|
||||
if (ppcInterpreterCurrentInstance)
|
||||
PPCInterpreter_t* hCPU = PPCInterpreter_getCurrentInstance();
|
||||
if (hCPU)
|
||||
{
|
||||
OSThread_t* currentThread = coreinit::OSGetCurrentThread();
|
||||
uint32 threadPtr = memory_getVirtualOffsetFromPointer(coreinit::OSGetCurrentThread());
|
||||
sprintf(dumpLine, "IP 0x%08x LR 0x%08x Thread 0x%08x", ppcInterpreterCurrentInstance->instructionPointer, ppcInterpreterCurrentInstance->spr.LR, threadPtr);
|
||||
sprintf(dumpLine, "IP 0x%08x LR 0x%08x Thread 0x%08x", hCPU->instructionPointer, hCPU->spr.LR, threadPtr);
|
||||
CrashLog_WriteLine(dumpLine);
|
||||
|
||||
// GPR info
|
||||
CrashLog_WriteLine("");
|
||||
auto gprs = ppcInterpreterCurrentInstance->gpr;
|
||||
auto gprs = hCPU->gpr;
|
||||
sprintf(dumpLine, "r0 =%08x r1 =%08x r2 =%08x r3 =%08x r4 =%08x r5 =%08x r6 =%08x r7 =%08x", gprs[0], gprs[1], gprs[2], gprs[3], gprs[4], gprs[5], gprs[6], gprs[7]);
|
||||
CrashLog_WriteLine(dumpLine);
|
||||
sprintf(dumpLine, "r8 =%08x r9 =%08x r10=%08x r11=%08x r12=%08x r13=%08x r14=%08x r15=%08x", gprs[8], gprs[9], gprs[10], gprs[11], gprs[12], gprs[13], gprs[14], gprs[15]);
|
||||
|
|
@ -93,7 +94,7 @@ void ExceptionHandler_LogGeneralInfo()
|
|||
CrashLog_WriteLine(dumpLine);
|
||||
|
||||
// stack trace
|
||||
MPTR currentStackVAddr = ppcInterpreterCurrentInstance->gpr[1];
|
||||
MPTR currentStackVAddr = hCPU->gpr[1];
|
||||
CrashLog_WriteLine("");
|
||||
CrashLog_WriteHeader("PPC stack trace");
|
||||
DebugLogStackTrace(currentThread, currentStackVAddr);
|
||||
|
|
|
|||
|
|
@ -236,12 +236,17 @@ inline uint64 _udiv128(uint64 highDividend, uint64 lowDividend, uint64 divisor,
|
|||
#if defined(_MSC_VER)
|
||||
#define UNREACHABLE __assume(false)
|
||||
#define ASSUME(__cond) __assume(__cond)
|
||||
#elif defined(__GNUC__)
|
||||
#define TLS_WORKAROUND_NOINLINE // no-op for MSVC as it has a flag for fiber-safe TLS optimizations
|
||||
#elif defined(__GNUC__) && !defined(__llvm__)
|
||||
#define UNREACHABLE __builtin_unreachable()
|
||||
#define ASSUME(__cond) __attribute__((assume(__cond)))
|
||||
#define TLS_WORKAROUND_NOINLINE __attribute__((noinline))
|
||||
#elif defined(__clang__)
|
||||
#define UNREACHABLE __builtin_unreachable()
|
||||
#define ASSUME(__cond) __builtin_assume(__cond)
|
||||
#define TLS_WORKAROUND_NOINLINE __attribute__((noinline))
|
||||
#else
|
||||
#define UNREACHABLE
|
||||
#define ASSUME(__cond)
|
||||
#error Unknown compiler
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue