summaryrefslogtreecommitdiffstats
path: root/src/common/page_table.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-05-29core/memory: Check our memory fallbacks for out-of-bound behavior.Markus Wick1-0/+1
This makes it by far harder to crash yuzu. Also implement the 48bit masking of AARCH64 while touching this code.
2020-12-30core/memory: Read and write page table atomicallyReinUsesLisp1-8/+2
Squash attributes into the pointer's integer, making them an uintptr_t pair containing 2 bits at the bottom and then the pointer. These bits are currently unused thanks to alignment requirements. Configure Dynarmic to mask out these bits on pointer reads. While we are at it, remove some unused attributes carried over from Citra. Read/Write and other hot functions use a two step unpacking process that is less readable to stop MSVC from emitting an extra AND instruction in the hot path: mov rdi,rcx shr rdx,0Ch mov r8,qword ptr [rax+8] mov rax,qword ptr [r8+rdx*8] mov rdx,rax -and al,3 and rdx,0FFFFFFFFFFFFFFFCh je Core::Memory::Memory::Impl::Read<unsigned char> mov rax,qword ptr [vaddr] movzx eax,byte ptr [rdx+rax]
2020-11-18page_table: Allow page tables to be movedLioncash1-1/+1
Makes page tables and virtual buffers able to be moved, but not copied, making the interface more flexible. Previously, with the destructor specified, but no move assignment or constructor specified, they wouldn't be implicitly generated.
2020-04-17common: page_table: Update to use VirtualBuffer and simplify.bunnei1-25/+9
2020-03-14PageTable: move backing addresses to a children class as the CPU page table does not need them.Fernando Sahmkow1-1/+11
This PR aims to reduce the memory usage in the CPU page table by moving GPU specific parameters into a child class. This saves 1Gb of Memory for most games.
2019-03-21gpu: Rewrite virtual memory manager using PageTable.bunnei1-0/+2
2019-03-17core: Move PageTable struct into Common.bunnei1-0/+29