summaryrefslogtreecommitdiffstats
path: root/src/common/page_table.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Use spans over guest memory where possible instead of copying data.Kelebek12023-07-031-0/+1
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.bunnei2022-02-191-14/+14
|
* core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.bunnei2022-02-191-2/+56
| | | | - Improves the implementations of MapPhysicalMemory and UnmapPhysicalMemory to more closely reflect latest HOS.
* core/memory: Check our memory fallbacks for out-of-bound behavior.Markus Wick2021-05-291-0/+1
| | | | | | This makes it by far harder to crash yuzu. Also implement the 48bit masking of AARCH64 while touching this code.
* core/memory: Read and write page table atomicallyReinUsesLisp2020-12-301-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]
* page_table: Allow page tables to be movedLioncash2020-11-181-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.
* common: page_table: Update to use VirtualBuffer and simplify.bunnei2020-04-171-25/+9
|
* PageTable: move backing addresses to a children class as the CPU page table does not need them.Fernando Sahmkow2020-03-141-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.
* gpu: Rewrite virtual memory manager using PageTable.bunnei2019-03-211-0/+2
|
* core: Move PageTable struct into Common.bunnei2019-03-171-0/+29