1. 30 Dec, 2020 1 commit
    • ReinUsesLisp's avatar
      core/memory: Read and write page table atomically · b3587102
      ReinUsesLisp authored
      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]
      b3587102
  2. 29 Dec, 2020 5 commits
  3. 28 Dec, 2020 1 commit
  4. 27 Dec, 2020 1 commit
  5. 26 Dec, 2020 1 commit
  6. 25 Dec, 2020 6 commits
  7. 23 Dec, 2020 4 commits
  8. 22 Dec, 2020 3 commits
  9. 21 Dec, 2020 1 commit
  10. 20 Dec, 2020 2 commits
  11. 19 Dec, 2020 1 commit
  12. 18 Dec, 2020 14 commits