From 8ad05ce10ece558634c4f93ee532bb6b3ad586a4 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Tue, 26 Jun 2018 15:00:09 +0300 Subject: [PATCH] SPU LLVM: fix jt target duplication bug --- rpcs3/Emu/Cell/SPURecompiler.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/Cell/SPURecompiler.cpp b/rpcs3/Emu/Cell/SPURecompiler.cpp index 789e4440c5..b0460990d6 100644 --- a/rpcs3/Emu/Cell/SPURecompiler.cpp +++ b/rpcs3/Emu/Cell/SPURecompiler.cpp @@ -3979,10 +3979,16 @@ public: { if (m_block_info[target / 4]) { - targets.emplace(target, add_block(target)); + targets.emplace(target, nullptr); } } + // Initialize target basic blocks + for (auto& pair : targets) + { + pair.second = add_block(pair.first); + } + // Get jump table bounds (optimization) const u32 start = targets.begin()->first; const u32 end = targets.rbegin()->first + 4;