mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-24 18:39:56 +00:00
SPU: Disable PUTLLC NOP transfers detection on TSX path
This commit is contained in:
parent
f8dbfa1d1e
commit
84470c34db
@ -1227,7 +1227,7 @@ static bool ppu_store_reservation(ppu_thread& ppu, u32 addr, T reg_value)
|
||||
const T old_data = static_cast<T>(ppu.rdata << ((addr & 7) * 8) >> size_off);
|
||||
auto& res = vm::reservation_acquire(addr, sizeof(T));
|
||||
|
||||
if (std::exchange(ppu.raddr, 0) != addr || addr % sizeof(T) || old_data != data || ppu.rtime != res)
|
||||
if (std::exchange(ppu.raddr, 0) != addr || addr % sizeof(T) || old_data != data || ppu.rtime != (res & -128))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -2021,7 +2021,7 @@ bool spu_thread::process_mfc_cmd()
|
||||
if (raddr && raddr != addr)
|
||||
{
|
||||
// Last check for event before we replace the reservation with a new one
|
||||
if (vm::reservation_acquire(raddr, 128) != rtime || !cmp_rdata(rdata, vm::_ref<decltype(rdata)>(raddr)))
|
||||
if ((vm::reservation_acquire(raddr, 128) & -128) != rtime || !cmp_rdata(rdata, vm::_ref<decltype(rdata)>(raddr)))
|
||||
{
|
||||
ch_event_stat |= SPU_EVENT_LR;
|
||||
}
|
||||
@ -2063,7 +2063,7 @@ bool spu_thread::process_mfc_cmd()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (cmp_rdata(to_write, rdata))
|
||||
if (!g_use_rtm && cmp_rdata(to_write, rdata))
|
||||
{
|
||||
// Writeback of unchanged data. Only check memory change
|
||||
return cmp_rdata(rdata, vm::_ref<decltype(rdata)>(addr)) && res.compare_and_swap_test(rtime, rtime + 128);
|
||||
|
Loading…
x
Reference in New Issue
Block a user