mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-08 07:51:28 +12:00
Fix SPU Loop Detection
This commit is contained in:
parent
3602d45cb7
commit
b9b591bf02
3 changed files with 19 additions and 0 deletions
|
@ -1534,8 +1534,17 @@ void spu_recompiler::RDCH(spu_opcode_t op)
|
|||
const u32 out = _spu->ch_dec_value - static_cast<u32>(get_timebased_time() - _spu->ch_dec_start_timestamp);
|
||||
|
||||
if (out > 1500)
|
||||
{
|
||||
_spu->state += cpu_flag::wait;
|
||||
std::this_thread::yield();
|
||||
|
||||
if (_spu->test_stopped())
|
||||
{
|
||||
_spu->pc += 4;
|
||||
spu_runtime::g_escape(_spu);
|
||||
}
|
||||
}
|
||||
|
||||
*_res = v128::from32r(out);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue