mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-07-14 07:42:24 -05:00
Using LDP/STP when accessing m_ppc_state lets us load/store two registers at once. We previously opportunistically used STP, but this new analysis lets us move loads earlier and move stores later to make use of LDP/STP in more situations. This reduces code size and time spent on m_ppc_state accesses, possibly with exceptions when under heavy register pressure. This commit adds the new bitsets load_pairs and store_pairs to BlockRegStats, which indicate which registers should be treated as a pair when loading and storing to m_ppc_state. The commits after this one will add code that reads these bitsets to determine when to use LDP/STP. x64 doesn't have instructions that can load/store a pair of registers, so the new PPCAnalyst code is ifdef'd for AArch64. |
||
|---|---|---|
| .. | ||
| AudioCommon | ||
| Common | ||
| Core | ||
| DiscIO | ||
| DolphinNoGUI | ||
| DolphinQt | ||
| DolphinTool | ||
| InputCommon | ||
| MacUpdater | ||
| UICommon | ||
| UpdaterCommon | ||
| VideoBackends | ||
| VideoCommon | ||
| WinUpdater | ||
| CMakeLists.txt | ||
| DolphinLib.ARM64.props | ||
| DolphinLib.props | ||
| DolphinLib.vcxproj | ||
| DolphinLib.vcxproj.user | ||
| DolphinLib.x64.props | ||
| VersionInfo.plist.in | ||