dolphin-emulator/Source/Core
JosJuice 8c2c665af3 Jit: Check MSR state in BLR optimization
When we execute a JIT block, we have to make sure that both the PC and
the DR/IR bits of MSR are the same as they were when the block was
compiled. When jumping to a block from the dispatcher, this is done in
the way you would expect: By checking the PC and the relevant MSR bits.
However, when returning to a block using the BLR optimization, we only
check the PC. Checking the MSR bits is done by instead resetting the
stack when the MSR changes, making PC checks afterwards fail.

Except... We were only resetting the stack on rfi instructions. There
are actually many more ways for the MSR to change, and we weren't
covering those at all. I looked into resetting the stack on all of them,
but it would be pretty cumbersome both in terms of writing the code and
in terms of how often at runtime we'd have to reset the stack, so I
think the better option would be to check the MSR bits along with the
PC. That's what this commit implements.
2023-08-29 19:05:26 +02:00
..
AudioCommon Use structs for config callback IDs 2023-08-17 19:19:26 +02:00
Common Merge pull request #12117 from JosJuice/config-callback-cpu 2023-08-26 16:34:46 +02:00
Core Jit: Check MSR state in BLR optimization 2023-08-29 19:05:26 +02:00
DiscIO DiscIO: Don't keep volume pointer in DiscScrubber 2023-08-19 17:30:22 +02:00
DolphinNoGUI Merge pull request #11873 from AdmiralCurtiss/pause-and-lock-host 2023-06-06 13:50:20 +02:00
DolphinQt Merge pull request #12127 from sepalani/ascii_ 2023-08-26 14:56:26 +02:00
DolphinTool Merge pull request #11960 from Minty-Meeo/dolphin-tool-code-review-4 2023-06-17 14:18:21 +02:00
InputCommon Merge pull request #12117 from JosJuice/config-callback-cpu 2023-08-26 16:34:46 +02:00
MacUpdater CMake: Fix storyboard copying 2023-04-29 16:10:38 -05:00
UICommon Use structs for config callback IDs 2023-08-17 19:19:26 +02:00
UpdaterCommon CMake: Use targets for all optionally-external dependencies 2023-06-15 01:41:41 -05:00
VideoBackends VideoBackends: update SRVDescriptorTable size in DX12 to use pixel sampler constant 2023-08-13 17:23:26 -05:00
VideoCommon Merge pull request #12117 from JosJuice/config-callback-cpu 2023-08-26 16:34:46 +02:00
WinUpdater StringUtil: Move CommandLineToUtf8Argv() into Common namespace 2023-05-16 14:23:21 -04:00
CMakeLists.txt
DolphinLib.ARM64.props
DolphinLib.props Merge pull request #12117 from JosJuice/config-callback-cpu 2023-08-26 16:34:46 +02:00
DolphinLib.vcxproj Added rcheevos to Externals 2023-04-02 08:28:23 -04:00
DolphinLib.vcxproj.user
DolphinLib.x64.props