Refactoring (#6143)

Prefer vm::ptr<>::ptr over vm::get_addr.
    Prefer vm::_ptr/base over vm::g_base_addr with offset.
    Added methods atomic_t<>::bts and atomic_t<>::btr .
    Removed obsolute rsx:🧵:Read/WriteIO32 methods.
    Removed wrong check in semaphore_release.
    Added handling for PUTRx commands for RawSPU MFC proxy.
    Prefer overloaded methods of v128 instead of _mm_... in VPKSHUS ppu interpreter precise.
    Fixed more potential overflows that may result in wrong behaviour.
    Added io/size alignment check for sys_rsx_context_iounmap.
    Added rsx::constants::local_mem_base which represents RSX local memory base address.
    Removed obsolute rsx:🧵:main_mem_addr/ioSize/ioAddress members.
This commit is contained in:
Eladash 2019-06-29 01:27:49 +03:00 committed by Ivan
parent e043412be4
commit 1ee7b91646
20 changed files with 64 additions and 81 deletions

View file

@ -1335,8 +1335,8 @@ void spu_thread::do_dma_transfer(const spu_mfc_cmd& args)
}
}
u8* dst = (u8*)vm::base(eal);
u8* src = (u8*)vm::base(offset + lsa);
u8* dst = vm::_ptr<u8>(eal);
u8* src = vm::_ptr<u8>(offset + lsa);
if (UNLIKELY(!is_get && !g_use_rtm))
{
@ -1603,7 +1603,7 @@ void spu_thread::do_putlluc(const spu_mfc_cmd& args)
cpu_thread::suspend_all cpu_lock(this);
// Try to obtain bit 7 (+64)
if (!atomic_storage<u64>::bts(vm::reservation_acquire(addr, 128).raw(), 6))
if (!vm::reservation_acquire(addr, 128).bts(6))
{
auto& data = vm::_ref<decltype(rdata)>(addr);
mov_rdata(data, to_write);