dolphin/Source/Core
magumagu d557310371 Support for dynamic BAT modification (dynamic-bat).
Fundamentally, all this does is enforce the invariant that we always
translate effective addresses based on the current BAT registers and
page table before we do anything else with them.

This change can be logically divided into three parts.  The first part is
creating a table to represent the current BAT state, and keeping it up to
date (PowerPC::IBATUpdated, PowerPC::DBATUpdated, etc.).  This does
nothing by itself, but it's necessary for the other parts.

The second part (mostly in MMU.cpp) is simply removing all the hardcoded
checks for specific untranslated addresses, and consistently translating
addresses using the current BAT configuration. Very straightforward, but a
lot of code changes because we hardcoded assumptions all over the place.

The third part (mostly in Memmap.cpp) is making the fastmem arena reflect
the current BAT configuration.  We do this by redoing the mapping (calling
memmap()) based on the BAT table whenever it changes.

One additional minor change is that translation can fail in two ways:
either the segment is a direct store segment, or page table lookup failed.
The difference doesn't usually matter, but the difference affects cache
instructions, like dcbz.
2016-09-06 08:43:22 +02:00
..
AudioCommon Use Common::Flag and Common::Event when possible 2016-08-10 16:08:15 +02:00
Common Support for dynamic BAT modification (dynamic-bat). 2016-09-06 08:43:22 +02:00
Core Support for dynamic BAT modification (dynamic-bat). 2016-09-06 08:43:22 +02:00
DiscIO Run clang-format on missed files 2016-08-11 21:14:39 +02:00
DolphinQt2 Remove Global Declarations from Movie 2016-08-04 15:24:44 -04:00
DolphinWX Merge pull request #4143 from Pringo/capitalize 2016-09-01 03:21:24 +02:00
InputCommon GCAdapter: Return input state by value 2016-08-01 21:27:51 -04:00
UICommon portable.txt enables portable configuration on linux, README updated to 2016-07-04 19:39:10 +10:00
VideoBackends VideoSoftware: Don't Init the PixelEngine twice 2016-09-03 15:12:41 +10:00
VideoCommon Merge pull request #4177 from phire/useless_cases 2016-09-06 00:56:09 +12:00
CMakeLists.txt [UI] Remove DolphinQt 2016-01-05 19:42:02 -06:00