mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 16:31:28 +12:00
Improve vm::range_lock
Not sure how it ever worked Clear redundant vm::clear_range_lock usage
This commit is contained in:
parent
a42663b09b
commit
78c986b5dd
4 changed files with 48 additions and 18 deletions
|
@ -2038,7 +2038,7 @@ void spu_thread::do_dma_transfer(spu_thread* _this, const spu_mfc_cmd& args, u8*
|
|||
}
|
||||
|
||||
// Obtain range lock as normal store
|
||||
vm::range_lock(res, range_lock, eal, size0);
|
||||
vm::range_lock(nullptr, range_lock, eal, size0);
|
||||
|
||||
switch (size0)
|
||||
{
|
||||
|
@ -2111,7 +2111,7 @@ void spu_thread::do_dma_transfer(spu_thread* _this, const spu_mfc_cmd& args, u8*
|
|||
perf_meter<"DMA_PUT"_u64> perf2;
|
||||
|
||||
// TODO: split range-locked stores in cache lines for consistency
|
||||
auto& res = vm::reservation_acquire(eal, args.size);
|
||||
auto res = &vm::reservation_acquire(eal, args.size);
|
||||
|
||||
switch (u32 size = args.size)
|
||||
{
|
||||
|
@ -2574,9 +2574,6 @@ bool spu_thread::do_putllc(const spu_mfc_cmd& args)
|
|||
return false;
|
||||
}
|
||||
|
||||
// Wait for range locks to clear
|
||||
vm::clear_range_locks(addr, 128);
|
||||
|
||||
vm::_ref<atomic_t<u32>>(addr) += 0;
|
||||
|
||||
auto& super_data = *vm::get_super_ptr<spu_rdata_t>(addr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue