| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
scheduling.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- This is a workaround that does not belong in a kernel primitive.
|
|
|
|
|
|
Allows us to test whether a buffer can be read from or written to memory
|
|
Makes for less code that we need to maintain.
|
|
- This is decoupled from core functionality and used for debugging only.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ThreadState.
- This is how the real kernel works, and is more accurate and simpler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/memory: Read and write page table atomically
|
|
Service threads
|
|
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]
|
|
k_priority_queue: Fix concepts use
|
|
|
|
- This is to allow service threads to defer destruction of themselves.
|