diff --git a/Utilities/Thread.cpp b/Utilities/Thread.cpp index 8010fd7b56..fb194a7323 100644 --- a/Utilities/Thread.cpp +++ b/Utilities/Thread.cpp @@ -1212,7 +1212,7 @@ thread_t::thread_t(std::function name, std::function func start(std::move(name), func); } -thread_t::~thread_t() +thread_t::~thread_t() noexcept(false) { if (m_thread) { diff --git a/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp b/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp index 4a3300fe85..48612562ec 100644 --- a/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp +++ b/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp @@ -1605,7 +1605,7 @@ void ARMv7_instrs::CLZ(ARMv7Context& context, const ARMv7Code code, const ARMv7_ if (ConditionPassed(context, cond)) { - context.write_gpr(d, cntlz32(context.read_gpr(m)), type == T1 ? 2 : 4); + context.write_gpr(d, cntlz32(context.read_gpr(m)), 4); } } @@ -3475,7 +3475,7 @@ void ARMv7_instrs::POP(ARMv7Context& context, const ARMv7Code code, const ARMv7_ { if (reg_list & (1 << i)) { - context.write_gpr(i, *stack++, type < A1 ? 2 : 4); + context.write_gpr(i, *stack++, type == T1 ? 2 : 4); } } @@ -5572,7 +5572,7 @@ void ARMv7_instrs::UXTB(ARMv7Context& context, const ARMv7Code code, const ARMv7 if (ConditionPassed(context, cond)) { - context.write_gpr(d, (context.read_gpr(m) >> rot) & 0xff, type < A1 ? 2 : 4); + context.write_gpr(d, (context.read_gpr(m) >> rot) & 0xff, type == T1 ? 2 : 4); } } diff --git a/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp b/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp index 8c8c50c4be..8b37adbf4c 100644 --- a/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp +++ b/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp @@ -91,7 +91,7 @@ s32 sceKernelExitThread(ARMv7Context& context, s32 exitStatus) sceLibKernel.Warning("sceKernelExitThread(exitStatus=0x%x)", exitStatus); // exit status is stored in r0 - static_cast(context).Stop(); + static_cast(context).Exit(); return SCE_OK; } diff --git a/rpcs3/Emu/RSX/Common/ProgramStateCache.h b/rpcs3/Emu/RSX/Common/ProgramStateCache.h index 6a732e7bd7..5466b2d87f 100644 --- a/rpcs3/Emu/RSX/Common/ProgramStateCache.h +++ b/rpcs3/Emu/RSX/Common/ProgramStateCache.h @@ -2,7 +2,6 @@ #include "Emu/RSX/RSXFragmentProgram.h" #include "Emu/RSX/RSXVertexProgram.h" -#include "Utilities/Log.h" enum class SHADER_TYPE diff --git a/rpcs3/Emu/RSX/GSManager.cpp b/rpcs3/Emu/RSX/GSManager.cpp index e4870d13ad..ed26fc0790 100644 --- a/rpcs3/Emu/RSX/GSManager.cpp +++ b/rpcs3/Emu/RSX/GSManager.cpp @@ -1,5 +1,6 @@ #include "stdafx.h" #include "rpcs3/Ini.h" +#include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "sysutil_video.h" diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 1e9558acc4..f06ad6836e 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -252,9 +252,9 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const if (m_flip_handler) { auto cb = m_flip_handler; - Emu.GetCallbackManager().Async([cb](PPUThread& CPU) + Emu.GetCallbackManager().Async([=](CPUThread& CPU) { - cb(CPU, 1); + cb(static_cast(CPU), 1); }); } @@ -2307,9 +2307,9 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const { const u32 cause = ARGS(0); auto cb = m_user_handler; - Emu.GetCallbackManager().Async([cb, cause](PPUThread& CPU) + Emu.GetCallbackManager().Async([=](CPUThread& CPU) { - cb(CPU, cause); + cb(static_cast(CPU), cause); }); break; } @@ -2470,9 +2470,9 @@ void RSXThread::Task() if (auto cb = m_vblank_handler) { - Emu.GetCallbackManager().Async([=](PPUThread& CPU) + Emu.GetCallbackManager().Async([=](CPUThread& CPU) { - cb(CPU, 1); + cb(static_cast(CPU), 1); }); } } diff --git a/rpcs3/Emu/SysCalls/Callback.cpp b/rpcs3/Emu/SysCalls/Callback.cpp index d29ceb5cf1..abb218cd1f 100644 --- a/rpcs3/Emu/SysCalls/Callback.cpp +++ b/rpcs3/Emu/SysCalls/Callback.cpp @@ -20,32 +20,18 @@ void CallbackManager::Register(std::function func) }); } -void CallbackManager::Async(std::function func) +void CallbackManager::Async(std::function func) { std::lock_guard lock(m_mutex); m_async_list.push_back([=](CPUThread& CPU) { - if (CPU.GetType() != CPU_THREAD_PPU) throw EXCEPTION("PPU thread expected"); - func(static_cast(CPU)); + func(CPU); }); m_cv.notify_one(); } -//void CallbackManager::Async(std::function func) -//{ -// std::lock_guard lock(m_mutex); -// -// m_async_list.push_back([=](CPUThread& CPU) -// { -// if (CPU.GetType() != CPU_THREAD_ARMv7) throw EXCEPTION("ARMv7 thread expected"); -// func(static_cast(CPU)); -// }); -// -// m_cv.notify_one(); -//} - bool CallbackManager::Check(CPUThread& CPU, s32& result) { std::function func; diff --git a/rpcs3/Emu/SysCalls/Callback.h b/rpcs3/Emu/SysCalls/Callback.h index d1ef93c0d7..3135abd640 100644 --- a/rpcs3/Emu/SysCalls/Callback.h +++ b/rpcs3/Emu/SysCalls/Callback.h @@ -26,8 +26,7 @@ class CallbackManager public: void Register(std::function func); // register callback (called in Check() method) - void Async(std::function func); // register callback for callback thread (called immediately) - //void Async(std::function func); + void Async(std::function func); // register callback for callback thread (called immediately) bool Check(CPUThread& CPU, s32& result); // call one callback registered by Register() method diff --git a/rpcs3/Emu/SysCalls/Modules/cellFs.cpp b/rpcs3/Emu/SysCalls/Modules/cellFs.cpp index 1efdc9b1d9..e8448aa9a9 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellFs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellFs.cpp @@ -527,9 +527,9 @@ s32 cellFsStReadStart(u32 fd, u64 offset, u64 size) { const auto func = file->st_callback.exchange({}).func; - Emu.GetCallbackManager().Async([=](PPUThread& CPU) + Emu.GetCallbackManager().Async([=](CPUThread& CPU) { - func(CPU, fd, available); + func(static_cast(CPU), fd, available); }); } } @@ -898,9 +898,9 @@ void fsAio(vm::ptr aio, bool write, s32 xid, fs_aio_cb_t func) } // should be executed directly by FS AIO thread - Emu.GetCallbackManager().Async([=](PPUThread& CPU) + Emu.GetCallbackManager().Async([=](CPUThread& CPU) { - func(CPU, aio, error, xid, result); + func(static_cast(CPU), aio, error, xid, result); }); } diff --git a/rpcs3/Emu/SysCalls/Modules/sceNp.h b/rpcs3/Emu/SysCalls/Modules/sceNp.h index 467cca9f7f..b86f1fc805 100644 --- a/rpcs3/Emu/SysCalls/Modules/sceNp.h +++ b/rpcs3/Emu/SysCalls/Modules/sceNp.h @@ -1067,10 +1067,13 @@ struct SceNpMatching2LobbyDataInternal union SceNpMatching2LobbyMessageDestination { be_t unicastTarget; - struct multicastTarget { - be_t *memberId; + + struct + { + vm::bptr memberId; be_t memberIdNum; - }; + } + multicastTarget; }; // Group label @@ -1973,7 +1976,8 @@ struct SceNpScoreClanIdRankData }; // Union for connection information -union SceNpSignalingConnectionInfo { +union SceNpSignalingConnectionInfo +{ be_t rtt; be_t bandwidth; SceNpId npId; diff --git a/rpcs3/Gui/GLGSFrame.cpp b/rpcs3/Gui/GLGSFrame.cpp index 432f88e43c..899b2de32d 100644 --- a/rpcs3/Gui/GLGSFrame.cpp +++ b/rpcs3/Gui/GLGSFrame.cpp @@ -1,4 +1,5 @@ #include "stdafx_gui.h" +#include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" #include "GLGSFrame.h"