dolphin-emulator/Source/Core/Core
Franz-Josef Haider 859da32a6c Jit: Improve block lookup performance through a shm memory segment.
By using a shm memory segment for the fast_block_map that is sparsely
allocated (i.e. on write by the OS) instead of a statically allocated
array we can make the block lookup faster by:
* Having a bigger space available for lookup that doesn't take up
  too much memory, because the OS will only allocate the needed
  pages when written to.
* Decrease the time spent to lookup a block in the assembly dispatcher
  due to less comparisions and shorter code (for example the pc check
  has been entirely dropped since only the msrBits need to be validated).

When the JIT block cache is full the shm segment will also be released
and reallocated to avoid allocating too much memory. It will also be
reset when the instruction cache is flushed by the PPC code to avoid
having stale entries.

Also fallback to the original method in case the memory segment couldn't
be allocated.
2023-05-20 16:26:55 +03:00
..
Boot IOS/ES: Split ESDevice into ESCore and ESDevice. 2023-05-15 20:41:05 +02:00
Config Feature: Emulate Disney Infinity Base 2023-04-28 12:29:34 +12:00
ConfigLoaders Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
Debugger Common: Move CodeTrace.cpp/.h into Core 2023-04-24 09:10:43 -04:00
DSP DSPTool: Fix missing error when redefining labels 2023-02-04 17:31:06 -08:00
FifoPlayer Resolve [-Wclass-memaccess] 2023-04-12 03:59:57 -05:00
HLE PowerPC: Refactor to class, move to System. 2023-04-09 21:48:37 +02:00
HW Common/MemArena: Pass shared memory base file name to GrabSHMSegment(). 2023-05-19 18:53:08 +02:00
IOS StringUtil: Move IsPrintableCharacter() into Common namespace 2023-05-16 14:17:54 -04:00
PowerPC Jit: Improve block lookup performance through a shm memory segment. 2023-05-20 16:26:55 +03:00
AchievementManager.cpp Added Invalid Request Drop to AchievementManager Request 2023-04-29 00:05:32 -04:00
AchievementManager.h Added Invalid Request Drop to AchievementManager Request 2023-04-29 00:05:32 -04:00
ActionReplay.cpp Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
ActionReplay.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
ARDecrypt.cpp Replace BitUtils with C++20: RotateLeft/RotateRight 2022-12-11 08:59:18 +01:00
ARDecrypt.h
BootManager.cpp Added LoadGameByFilenameAsync and CloseGame to AchievementManager 2023-04-12 03:08:47 -04:00
BootManager.h
CheatCodes.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
CheatGeneration.cpp
CheatGeneration.h
CheatSearch.cpp PowerPC/MMU: Refactor to class, move to System. 2023-03-28 03:47:51 +02:00
CheatSearch.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
CMakeLists.txt Feature: Emulate Disney Infinity Base 2023-04-28 12:29:34 +12:00
CommonTitles.h
ConfigManager.cpp Merge pull request #11751 from noahpistilli/discord-rpc 2023-05-19 19:35:17 +02:00
ConfigManager.h Merge pull request #11751 from noahpistilli/discord-rpc 2023-05-19 19:35:17 +02:00
Core.cpp StringUtil: Move IsPrintableCharacter() into Common namespace 2023-05-16 14:17:54 -04:00
Core.h Core/CPUThreadGuard: Fetch System from Guard. 2023-03-13 18:13:20 +01:00
CoreTiming.cpp PowerPC: Refactor to class, move to System. 2023-04-09 21:48:37 +02:00
CoreTiming.h CoreTiming: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
DolphinAnalytics.cpp DolphinAnalytics: Add READS_BOUNDING_BOX game quirk 2023-05-06 17:18:17 -07:00
DolphinAnalytics.h DolphinAnalytics: Add READS_BOUNDING_BOX game quirk 2023-05-06 17:18:17 -07:00
DSPEmulator.cpp
DSPEmulator.h
FreeLookConfig.cpp
FreeLookConfig.h
FreeLookManager.cpp ControllerEmu: Add default mappings for Android 2023-03-03 22:28:23 +01:00
FreeLookManager.h
GeckoCode.cpp PowerPC/MMU: Refactor to class, move to System. 2023-03-28 03:47:51 +02:00
GeckoCode.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
GeckoCodeConfig.cpp Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
GeckoCodeConfig.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
Host.h
HotkeyManager.cpp Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
HotkeyManager.h
LibusbUtils.cpp
LibusbUtils.h
MachineContext.h MachineContext: Fix USE_SIGACTION_ON_APPLE on arm64 2022-12-11 13:36:44 +00:00
MemoryWatcher.cpp PowerPC/MMU: Refactor to class, move to System. 2023-03-28 03:47:51 +02:00
MemoryWatcher.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
MemTools.cpp JitInterface: Refactor to class, move to System. 2023-03-26 14:38:07 +02:00
MemTools.h
Movie.cpp HW/SerialInterface: Refactor to class. 2023-03-12 16:08:56 +01:00
Movie.h
NetPlayClient.cpp Common/TraversalProto: Move interface into Common namespace 2023-04-24 08:53:14 -04:00
NetPlayClient.h Common/TraversalProto: Move interface into Common namespace 2023-04-24 08:53:14 -04:00
NetPlayCommon.cpp
NetPlayCommon.h
NetPlayProto.h NetPlay: Limit ENet's MTU to 1392 as a workaround for dropped packets over VPN via WireGuard, see https://github.com/lsalzman/enet/issues/132 2023-04-02 17:23:10 +02:00
NetPlayServer.cpp IOS/ES: Split ESDevice into ESCore and ESDevice. 2023-05-15 20:41:05 +02:00
NetPlayServer.h Common/TraversalProto: Move interface into Common namespace 2023-04-24 08:53:14 -04:00
NetworkCaptureLogger.cpp
NetworkCaptureLogger.h
PatchEngine.cpp Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
PatchEngine.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
State.cpp IOS/WiiSockMan: Move instance to IOS Kernel. 2023-04-18 01:24:10 +02:00
State.h Core/State: Rewrite threading behavior when multiple Save requests are happening. Should improve responsiveness when eg. mashing a save state button. 2022-10-02 00:00:29 +02:00
SyncIdentifier.h
SysConf.cpp
SysConf.h
System.cpp Feature: Emulate Disney Infinity Base 2023-04-28 12:29:34 +12:00
System.h Feature: Emulate Disney Infinity Base 2023-04-28 12:29:34 +12:00
TitleDatabase.cpp
TitleDatabase.h
WiiRoot.cpp IOS/ES: Split ESDevice into ESCore and ESDevice. 2023-05-15 20:41:05 +02:00
WiiRoot.h
WiiUtils.cpp IOS/ES: Split ESDevice into ESCore and ESDevice. 2023-05-15 20:41:05 +02:00
WiiUtils.h IOS/ES: Split ESDevice into ESCore and ESDevice. 2023-05-15 20:41:05 +02:00