dolphin/Source/Core
comex 8dea26762d Rationalize temporary register usage.
Rather than using a variety of registers including RSI, ABI_PARAM1
(either RCX or RDI), RCX, and RDX, the rule is:

- RDI and RSI are never used.  This allows them to be allocated on Unix,
bringing parity with Windows.

- RDX is a permanent temporary register along with RAX (and is thus not
FlushLocked).  It's used frequently enough that allocating it would
probably be a bad idea, as it would constantly get flushed.

- RCX is allocatable, but is flushed in two situations:
    - Non-immediate shifts (rlwnm), because x86 requires RCX to be used.
    - Paired single loads and stores, because they require three
    temporary registers: the helper functions take two integer
    arguments, and another register is used as an index to get the
    function address.
These should be relatively rare.

While we're at it, in stores, use the registers directly where possible
rather than always using temporaries (by making SafeWriteRegToReg
clobber less).  The address doesn't need to be clobbered in the usual
case, and on CPUs with MOVBE, neither does the value.

Oh, and get rid of a useless MEMCHECK.

This commit does not actually add new registers to the allocation order;
it is intended to test for any performance or correctness issues
separately.
2014-09-06 13:16:20 -04:00
..
AudioCommon Merge pull request #930 from skidau/openal-seq-ms 2014-09-02 09:56:46 -04:00
Common Factor code from ABI_CallFunctionRR and GetWriteTrampoline into a helper, and fix a special case. 2014-09-06 13:16:20 -04:00
Core Rationalize temporary register usage. 2014-09-06 13:16:20 -04:00
DiscIO FileHandlerARC: Remove FileHandlerARC. 2014-09-05 12:53:41 -04:00
DolphinWX Revert "JIT64: optimize CA calculations" 2014-09-05 10:26:30 -07:00
InputCommon Controller Interface: Remove "using namespace" in header file. 2014-09-04 23:02:25 -05:00
VideoBackends Merge pull request #972 from Sonicadvance1/fix-intel-windows 2014-09-05 11:06:49 -07:00
VideoCommon Merge pull request #972 from Sonicadvance1/fix-intel-windows 2014-09-05 11:06:49 -07:00
CMakeLists.txt