yuzu-tx-update/src/core/hle/kernel
merry 16784e5bb3 dynarmic: Inline exclusive memory accesses
Inlines implementation of exclusive instructions into JITted code,
improving performance of applications relying heavily on these
instructions.

We also fastmem these instructions for additional speed, with
support for appropriate recompilation on fastmem failure.

An unsafe optimization to disable the intercore global_monitor is also
provided, should one wish to rely solely on cmpxchg semantics for
safety.

See also: merryhime/dynarmic#664
2022-02-27 19:40:05 +00:00
..
arch/arm64 hle: kernel: Add architecture and board specific memory regions. 2021-03-21 14:45:02 -07:00
board/nintendo/nx hle: kernel: KSystemControl: Use 6GB memory layout when "use_extended_memory_layout" setting is enabled. 2022-02-21 13:07:19 -08:00
init kernel: svc: Implement Map/UnmapProcessMemory and Create/ControlCodeMemory 2021-12-05 15:04:08 -05:00
code_set.cpp kernel: Move CodeSet structure to its own source files 2019-03-20 13:07:04 -04:00
code_set.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
global_scheduler_context.cpp core: hle: kernel: Implement thread pinning. 2021-12-30 15:50:45 -08:00
global_scheduler_context.h core: Make variable shadowing a compile-time error 2021-05-16 03:43:16 -04:00
hle_ipc.cpp core: Remove unused includes 2021-11-03 21:42:57 -04:00
hle_ipc.h hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait. 2022-01-20 17:08:00 -08:00
k_address_arbiter.cpp dynarmic: Inline exclusive memory accesses 2022-02-27 19:40:05 +00:00
k_address_arbiter.h general: Replace RESULT_UNKNOWN with ResultUnknown 2021-06-02 00:39:27 -04:00
k_address_space_info.cpp common: Replace common_sizes into user-literals 2021-06-24 09:27:40 -07:00
k_address_space_info.h hle: kernel: Migrate AddressSpaceInfo to KAddressSpaceInfo. 2021-02-18 16:16:25 -08:00
k_affinity_mask.h kernel/k_affinity_mask: Remove duplicated assert 2022-01-24 10:35:22 -05:00
k_auto_object.cpp hle: kernel: Provide methods for tracking dangling kernel objects. 2021-07-20 18:54:55 -07:00
k_auto_object.h general: Move deleted copy/move constructor/assignment operators to public interface 2022-02-02 12:17:08 -05:00
k_auto_object_container.cpp common/logging: Move Log::Entry declaration to a separate header 2021-10-01 20:48:49 -04:00
k_auto_object_container.h general: Move deleted copy/move constructor/assignment operators to public interface 2022-02-02 12:17:08 -05:00
k_class_token.cpp kernel: svc: Implement Map/UnmapProcessMemory and Create/ControlCodeMemory 2021-12-05 15:04:08 -05:00
k_class_token.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_client_port.cpp hle: kernel: KClientPort: Add an assert for session count. 2021-06-09 22:36:42 -07:00
k_client_port.h hle: kernel: Refactor to allocate a ServiceThread per service handler. 2021-06-04 19:26:48 -07:00
k_client_session.cpp core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_client_session.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_code_memory.cpp hle: kernel: KCodeMemory: Remove unused QueryMemory. 2022-02-08 18:49:41 -08:00
k_code_memory.h Update k_code_memory.h 2021-12-07 16:58:23 -05:00
k_condition_variable.cpp hle: kernel: k_condition_variable: Revert unnecessary style changes. 2021-12-06 16:39:18 -08:00
k_condition_variable.h hle: kernel: KConditionVariable: Various updates & simplifications. 2021-12-06 16:39:17 -08:00
k_event.cpp core: hle: kernel: KEvent: Pass in owner KProcess on event creation. 2022-02-21 12:41:06 -08:00
k_event.h core: hle: kernel: KEvent: Pass in owner KProcess on event creation. 2022-02-21 12:41:06 -08:00
k_handle_table.cpp core: hle: kernel: k_handle_table: Use KScopedDisableDispatch as necessary. 2021-12-06 16:39:16 -08:00
k_handle_table.h general: Move deleted copy/move constructor/assignment operators to public interface 2022-02-02 12:17:08 -05:00
k_interrupt_manager.cpp core: hle: kernel: Implement thread pinning. 2021-12-30 15:50:45 -08:00
k_interrupt_manager.h core: hle: kernel: Implement thread pinning. 2021-12-30 15:50:45 -08:00
k_light_condition_variable.cpp hle: kernel: Remove unnecessary virtual specifier on CancelWait. 2021-12-06 16:39:18 -08:00
k_light_condition_variable.h hle: kernel: k_light_condition_variable: Revert unnecessary license comment changes. 2021-12-06 16:39:18 -08:00
k_light_lock.cpp hle: kernel: Remove unnecessary virtual specifier on CancelWait. 2021-12-06 16:39:18 -08:00
k_light_lock.h hle: kernel: KLightLock: Migrate to updated KThreadQueue. 2021-12-06 16:39:17 -08:00
k_linked_list.h core: Make variable shadowing a compile-time error 2021-05-16 03:43:16 -04:00
k_memory_block.h core: hle: kernel: k_page_table: Update CheckMemoryState. 2022-01-08 03:20:57 -08:00
k_memory_block_manager.cpp core: Make variable shadowing a compile-time error 2021-05-16 03:43:16 -04:00
k_memory_block_manager.h core: Make variable shadowing a compile-time error 2021-05-16 03:43:16 -04:00
k_memory_layout.board.nintendo_nx.cpp common: Replace common_sizes into user-literals 2021-06-24 09:27:40 -07:00
k_memory_layout.cpp hle: kernel: k_memory_layout: Move KMemoryRegionAllocator out of global. 2021-03-21 14:45:13 -07:00
k_memory_layout.h common: Replace common_sizes into user-literals 2021-06-24 09:27:40 -07:00
k_memory_manager.cpp hle: kernel: k_memory_manager: Clear pages on allocation & free. 2022-01-14 21:16:33 -08:00
k_memory_manager.h general: Replace NonCopyable struct with equivalents 2022-02-02 13:17:12 -05:00
k_memory_region.h general: Replace NonCopyable struct with equivalents 2022-02-02 13:17:12 -05:00
k_memory_region_type.h hle: kernel: k_memory_region_type: Minor code cleanup. 2021-03-23 18:42:04 -07:00
k_page_bitmap.h hle: kernel: KSystemControl does not belong in Memory namespace. 2021-02-18 16:16:24 -08:00
k_page_heap.cpp core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_page_heap.h general: Replace NonCopyable struct with equivalents 2022-02-02 13:17:12 -05:00
k_page_linked_list.h kernel: svc: Implement Map/UnmapProcessMemory and Create/ControlCodeMemory 2021-12-05 15:04:08 -05:00
k_page_table.cpp Merge pull request #7919 from bunnei/phys-mem-updates 2022-02-21 13:39:05 -07:00
k_page_table.h Merge pull request #7835 from bunnei/page-table-lock 2022-02-02 17:58:55 -07:00
k_port.cpp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
k_port.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_priority_queue.h hle: kernel: KScheduler: Fix deadlock with core waiting for a thread lock that has migrated. 2022-01-27 12:17:14 -08:00
k_process.cpp core: hle: kernel: KProcess: Pass in KResourceLimit on process creation. 2022-02-21 12:41:31 -08:00
k_process.h core: hle: kernel: KProcess: Pass in KResourceLimit on process creation. 2022-02-21 12:41:31 -08:00
k_readable_event.cpp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
k_readable_event.h hle: kernel: KAutoObjectWithListContainer: Use boost::instrusive::rbtree. 2021-06-06 15:39:11 -07:00
k_resource_limit.cpp core: hle: kernel: KResourceLimit: Add a helper function for creating a KResourceLimit for a process. 2022-02-21 12:40:09 -08:00
k_resource_limit.h core: hle: kernel: KResourceLimit: Add a helper function for creating a KResourceLimit for a process. 2022-02-21 12:40:09 -08:00
k_scheduler.cpp hle: kernel: KScheduler: Fix deadlock with core waiting for a thread lock that has migrated. 2022-01-27 12:17:14 -08:00
k_scheduler.h core: hle: kernel: Ensure idle threads are closed before destroying scheduler. 2021-12-06 16:39:16 -08:00
k_scheduler_lock.h hle: kernel: Add a flag for indicating that the kernel is currently shutting down. 2021-12-06 16:39:17 -08:00
k_scoped_lock.h core: Fix transitive include build errors 2021-11-03 21:42:58 -04:00
k_scoped_resource_reservation.h hle: kernel: Rename Process to KProcess. 2021-05-05 16:40:52 -07:00
k_scoped_scheduler_lock_and_sleep.h hle: kernel: Update KThreadQueue and migrate KSynchronizationObject. 2021-12-06 16:39:17 -08:00
k_server_port.cpp core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_server_port.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_server_session.cpp hle: kernel: KServerSession: Remove hack for CompleteSyncRequest. 2022-01-20 17:08:00 -08:00
k_server_session.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_session.cpp core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_session.h hle: kernel: Refactor to allocate a ServiceThread per service handler. 2021-06-04 19:26:48 -07:00
k_shared_memory.cpp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
k_shared_memory.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_shared_memory_info.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_slab_heap.h general: Replace NonCopyable struct with equivalents 2022-02-02 13:17:12 -05:00
k_spin_lock.cpp hle: kernel: Add KSpinLock implementation. 2021-02-18 16:16:24 -08:00
k_spin_lock.h hle: kernel: Migrate some code from Common::SpinLock to KSpinLock. 2021-03-21 14:45:02 -07:00
k_synchronization_object.cpp hle: kernel: Remove unnecessary virtual specifier on NotifyAvailable. 2021-12-06 16:39:18 -08:00
k_synchronization_object.h hle: kernel: KSynchronizationObject: Fix variable shadowing. 2021-12-06 16:39:17 -08:00
k_system_control.h hle: kernel: KSystemControl: Update to reflect board-specific behavior. 2021-03-21 14:45:02 -07:00
k_thread.cpp hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount. 2022-01-22 21:09:45 -08:00
k_thread.h hle: kernel: KThread: Ensure host (dummy) threads block on locking. 2022-01-21 17:12:06 -08:00
k_thread_queue.cpp Remove erroneous #pragma once 2021-12-13 16:49:01 +03:00
k_thread_queue.h hle: kernel: Remove unnecessary virtual specifier on EndWait. 2021-12-06 16:39:18 -08:00
k_trace.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_transfer_memory.cpp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
k_transfer_memory.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
k_worker_task.h core: hle: kernel: Add KWorkerTask and KWorkerTaskManager. 2022-01-14 16:43:59 -08:00
k_worker_task_manager.cpp core: hle: kernel: Add KWorkerTask and KWorkerTaskManager. 2022-01-14 16:43:59 -08:00
k_worker_task_manager.h core: hle: kernel: Add KWorkerTask and KWorkerTaskManager. 2022-01-14 16:43:59 -08:00
k_writable_event.cpp hle: kernel: KAutoObjectWithListContainer: Use boost::instrusive::rbtree. 2021-06-06 15:39:11 -07:00
k_writable_event.h kernel: Add missing override specifiers 2021-05-29 02:58:32 -04:00
kernel.cpp core: hle: kernel: Remove resource limit hack for PhysicalMemory. 2022-02-21 12:41:31 -08:00
kernel.h core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager. 2022-01-14 16:44:14 -08:00
memory_types.h hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others. 2021-02-18 16:16:25 -08:00
physical_core.cpp hle: kernel: k_page_table: Update SetProcessMemoryPermission. 2022-01-11 16:28:11 -08:00
physical_core.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
physical_memory.h physical_memory: Add missing include for <vector>. 2020-04-17 00:59:30 -04:00
process_capability.cpp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
process_capability.h general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
service_thread.cpp hle: kernel: service_thread: Ensure dummy thread is closed & destroyed on thread exit. 2022-01-20 17:08:00 -08:00
service_thread.h hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject. 2021-05-05 16:40:51 -07:00
slab_helpers.h core: Remove unused includes 2021-11-03 21:42:57 -04:00
svc.cpp core: hle: kernel: KEvent: Pass in owner KProcess on event creation. 2022-02-21 12:41:06 -08:00
svc.h core: kernel: Move SVC to its own namesapce. 2020-04-17 00:59:28 -04:00
svc_common.h core: hle: kernel: Updated implementation of svcSetHeapSize. 2021-12-28 01:25:20 -08:00
svc_results.h hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject. 2021-05-05 16:40:52 -07:00
svc_types.h core: hle: kernel: k_page_table: Update CheckMemoryState. 2022-01-08 03:20:57 -08:00
svc_wrap.h kernel: svc: Add OutputDebugString32, CreateCodeMemory32, ControlCodeMemory32 2022-02-15 00:45:19 +01:00
time_manager.cpp hle: kernel: KThread: Migrate to updated KThreadQueue (part 1). 2021-12-06 16:39:17 -08:00
time_manager.h core: Remove unused includes 2021-11-03 21:42:57 -04:00