1
0
Fork 0
forked from suyu/suyu
suyu/src/core/hle/kernel
ReinUsesLisp b3587102d1 core/memory: Read and write page table atomically
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-12-29 21:54:49 -03:00
..
memory core/memory: Read and write page table atomically 2020-12-29 21:54:49 -03:00
address_arbiter.cpp hle: kernel: Migrate to KScopedSchedulerLock. 2020-12-06 00:03:24 -08:00
address_arbiter.h hle: kernel: AddressArbiter: Remove unused code. 2020-11-29 01:31:51 -08:00
client_port.cpp General: Cleanup legacy code. 2020-06-27 11:36:05 -04:00
client_port.h
client_session.cpp kernel: Remove all dependencies on the global system instance 2020-09-14 14:03:13 -04:00
client_session.h kernel: Remove all dependencies on the global system instance 2020-09-14 14:03:13 -04:00
code_set.cpp
code_set.h
errors.h SVC: WaitSynchronization add Termination Pending Result. 2020-06-27 11:35:36 -04:00
global_scheduler_context.cpp hle: kernel: GlobalSchedulerContext: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
global_scheduler_context.h hle: kernel: GlobalSchedulerContext: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
handle_table.cpp hle: kernel: Rewrite scheduler implementation based on Mesopshere. 2020-12-06 00:03:24 -08:00
handle_table.h kernel/handle_table: Remove usages of the global system instance 2020-07-15 13:40:15 -04:00
hle_ipc.cpp hle: kernel: Separate KScopedSchedulerLockAndSleep from k_scheduler. 2020-12-06 00:03:24 -08:00
hle_ipc.h ipc_helpers: Remove usage of the global system instance 2020-11-08 15:58:11 -05:00
k_affinity_mask.h hle: kernel: KAffinityMask: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
k_priority_queue.h hle: kernel: KPriorityQueue: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
k_scheduler.cpp hle: kernel: KScheduler: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
k_scheduler.h hle: kernel: KScheduler: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
k_scheduler_lock.h hle: kernel: KAbstractSchedulerLock: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
k_scoped_lock.h hle: kernel: KScopedLock: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
k_scoped_scheduler_lock_and_sleep.h hle: kernel: KScopedSchedulerLockAndSleep: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
kernel.cpp hle: kernel: Migrate to KScopedSchedulerLock. 2020-12-06 00:03:24 -08:00
kernel.h hle: kernel: Rewrite scheduler implementation based on Mesopshere. 2020-12-06 00:03:24 -08:00
mutex.cpp hle: kernel: Migrate to KScopedSchedulerLock. 2020-12-06 00:03:24 -08:00
mutex.h Clang Format. 2020-06-27 11:36:14 -04:00
object.cpp
object.h
physical_core.cpp hle: kernel: Rewrite scheduler implementation based on Mesopshere. 2020-12-06 00:03:24 -08:00
physical_core.h Merge pull request #5131 from bunnei/scheduler-rewrite 2020-12-20 20:57:54 -08:00
physical_memory.h
process.cpp hle: kernel: Migrate to KScopedSchedulerLock. 2020-12-06 00:03:24 -08:00
process.h hle: kernel: Process: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
process_capability.cpp core: Remove unnecessary enum casts in log calls 2020-12-07 23:02:23 -05:00
process_capability.h
readable_event.cpp hle: kernel: Migrate to KScopedSchedulerLock. 2020-12-06 00:03:24 -08:00
readable_event.h
resource_limit.cpp core: Remove unnecessary enum casts in log calls 2020-12-07 23:02:23 -05:00
resource_limit.h
server_port.cpp
server_port.h
server_session.cpp Merge pull request #5131 from bunnei/scheduler-rewrite 2020-12-20 20:57:54 -08:00
server_session.h kernel: Remove all dependencies on the global system instance 2020-09-14 14:03:13 -04:00
session.cpp
session.h
shared_memory.cpp shared_memory: Amend doxygen reference 2020-04-23 18:42:14 -04:00
shared_memory.h shared_memory: Amend doxygen reference 2020-04-23 18:42:14 -04:00
svc.cpp svc: demote SleepThread log to LOG_TRACE 2020-12-29 14:01:56 -05:00
svc.h
svc_types.h
svc_wrap.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
synchronization.cpp hle: kernel: Migrate to KScopedSchedulerLock. 2020-12-06 00:03:24 -08:00
synchronization.h
synchronization_object.cpp General: Cleanup legacy code. 2020-06-27 11:36:05 -04:00
synchronization_object.h hle: kernel: SynchronizationObject: Use atomic_bool for is_signaled. 2020-11-29 01:31:51 -08:00
thread.cpp hle: kernel: Migrate to KScopedSchedulerLock. 2020-12-06 00:03:24 -08:00
thread.h hle: kernel: Thread: Various style fixes based on code review feedback. 2020-12-06 00:27:13 -08:00
time_manager.cpp kernel: time_manager: Add missing lock guards. 2020-12-06 00:03:24 -08:00
time_manager.h kernel: time_manager: Protect access with a mutex. 2020-11-29 01:31:52 -08:00
transfer_memory.cpp kernel: transfer_memory: Refactor for new VMM. 2020-04-17 00:59:32 -04:00
transfer_memory.h kernel: transfer_memory: Refactor for new VMM. 2020-04-17 00:59:32 -04:00
writable_event.cpp
writable_event.h