mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-04 14:01:25 +12:00
vm: refactor vm::range_lock again
Move bits to the highest, set RWX order. Use only one reserved value (W = locked). Assume lock size 128 for range_locked. Add new "Size" template argument that replaces normal argument.
This commit is contained in:
parent
bacfa9be19
commit
b68bdafadc
3 changed files with 72 additions and 44 deletions
|
@ -2167,28 +2167,28 @@ void spu_thread::do_dma_transfer(spu_thread* _this, const spu_mfc_cmd& args, u8*
|
|||
{
|
||||
case 1:
|
||||
{
|
||||
vm::range_lock(range_lock, eal, 1);
|
||||
vm::range_lock<true, 1>(range_lock, eal, 1);
|
||||
*reinterpret_cast<u8*>(dst) = *reinterpret_cast<const u8*>(src);
|
||||
range_lock->release(0);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
vm::range_lock(range_lock, eal, 2);
|
||||
vm::range_lock<true, 2>(range_lock, eal, 2);
|
||||
*reinterpret_cast<u16*>(dst) = *reinterpret_cast<const u16*>(src);
|
||||
range_lock->release(0);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
vm::range_lock(range_lock, eal, 4);
|
||||
vm::range_lock<true, 4>(range_lock, eal, 4);
|
||||
*reinterpret_cast<u32*>(dst) = *reinterpret_cast<const u32*>(src);
|
||||
range_lock->release(0);
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
vm::range_lock(range_lock, eal, 8);
|
||||
vm::range_lock<true, 8>(range_lock, eal, 8);
|
||||
*reinterpret_cast<u64*>(dst) = *reinterpret_cast<const u64*>(src);
|
||||
range_lock->release(0);
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue