From 488982f424c6cceb1c92a2ff383c9d129a989a03 Mon Sep 17 00:00:00 2001 From: sguo35 Date: Sat, 9 Jul 2022 23:30:18 -0700 Subject: [PATCH] spu: external function calls should be marked non-tail Mark external function calls as non-tail, since they aren't tail calls and assuming they are will cause returns to fail in Arm64 GHC CC. --- rpcs3/Emu/CPU/CPUTranslator.h | 1 + 1 file changed, 1 insertion(+) diff --git a/rpcs3/Emu/CPU/CPUTranslator.h b/rpcs3/Emu/CPU/CPUTranslator.h index a140c83a79..70e6fe889d 100644 --- a/rpcs3/Emu/CPU/CPUTranslator.h +++ b/rpcs3/Emu/CPU/CPUTranslator.h @@ -2979,6 +2979,7 @@ public: m_engine->updateGlobalMapping({lame.data(), lame.size()}, reinterpret_cast(_func)); const auto inst = m_ir->CreateCall(func, {args...}); + inst->setTailCallKind(llvm::CallInst::TCK_NoTail); #ifdef _WIN32 inst->setCallingConv(llvm::CallingConv::Win64); #endif