Replaces page fault triggers with assembly

This commit is contained in:
RipleyTom 2024-01-16 04:35:28 +01:00 committed by Elad.Ash
parent fa7ef870dd
commit 7d55a85fa6
3 changed files with 13 additions and 3 deletions

View file

@ -3721,7 +3721,7 @@ bool spu_thread::do_putllc(const spu_mfc_cmd& args)
if (!vm::check_addr(addr, vm::page_writable))
{
vm::_ref<atomic_t<u8>>(addr) += 0; // Access violate
utils::trigger_write_page_fault(vm::base(addr));
}
raddr = 0;
@ -3823,7 +3823,7 @@ void do_cell_atomic_128_store(u32 addr, const void* to_write)
else if (!g_use_rtm)
{
// Provoke page fault
vm::_ref<atomic_t<u32>>(addr) += 0;
utils::trigger_write_page_fault(vm::base(addr));
// Hard lock
auto spu = cpu ? cpu->try_get<spu_thread>() : nullptr;