SaveStates/SPU-LLVM: Fix SPU Access Violations on load
This commit is contained in:
@@ -15,7 +15,7 @@ u32 SPUDisAsm::disasm(u32 pc)
|
|||||||
{
|
{
|
||||||
last_opcode.clear();
|
last_opcode.clear();
|
||||||
|
|
||||||
if (!m_shm || pc < m_start_pc || pc >= SPU_LS_SIZE)
|
if (pc < m_start_pc || pc >= SPU_LS_SIZE)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2231,6 +2231,12 @@ public:
|
|||||||
{
|
{
|
||||||
for (auto& [a, b] : m_blocks)
|
for (auto& [a, b] : m_blocks)
|
||||||
{
|
{
|
||||||
|
if (has_gpr_memory_barriers)
|
||||||
|
{
|
||||||
|
// Dive deeper and inspect GPR store barriers
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// Check if the store occurs before any barrier in the block
|
// Check if the store occurs before any barrier in the block
|
||||||
if (b.store[i] && b.store[i] != bs && b.store_context_first_id[i] == 1)
|
if (b.store[i] && b.store[i] != bs && b.store_context_first_id[i] == 1)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user