diff --git a/src/core/tls.h b/src/core/tls.h index 83940be7a..27de518ea 100644 --- a/src/core/tls.h +++ b/src/core/tls.h @@ -61,7 +61,10 @@ template ReturnType ExecuteGuest(PS4_SYSV_ABI ReturnType (*func)(FuncArgs...), CallArgs&&... args) { EnsureThreadInitialized(); // clear stack to avoid trash from EnsureThreadInitialized - ClearStack<12_KB>(); + auto* tcb = GetTcbBase(); + if (tcb != nullptr && tcb->tcb_fiber == nullptr) { + ClearStack<12_KB>(); + } return func(std::forward(args)...); }