dolphin/Source/Core
Lioncash 244d083f0e PowerPC: Remove separate macros for paired singles
Previously, PowerPC.h had four macros in it like so:

\#define rPS0(i) (*(double*)(&PowerPC::ppcState.ps[i][0]))
\#define rPS1(i) (*(double*)(&PowerPC::ppcState.ps[i][1]))

\#define riPS0(i) (*(u64*)(&PowerPC::ppcState.ps[i][0]))
\#define riPS1(i) (*(u64*)(&PowerPC::ppcState.ps[i][1]))

Casting between object representations like this is undefined behavior.
Given this is used heavily with the interpreter (that is, the most
accurate, but slowest CPU backend), we don't exactly want to allow
undefined behavior to creep into it.

Instead, this adds a helper struct for operating with the paired singles,
and replaces the four macros with a single macro for accessing the
paired-singles/floating-point registers.

This way, it's left up to the caller to explicitly decide how it wants to interpret
the data (and makes it more obvious where different interpretations of
the same data are occurring at, as there'll be a call to one of the
[x]AsDouble() functions).
2018-12-25 10:35:09 -05:00
..
AudioCommon Update to Visual Studio's default Windows SDK 2018-10-20 00:53:08 +01:00
Common Merge pull request #7039 from stenzek/moltenvk 2018-11-30 21:55:30 +10:00
Core PowerPC: Remove separate macros for paired singles 2018-12-25 10:35:09 -05:00
DiscIO Update to Visual Studio's default Windows SDK 2018-10-20 00:53:08 +01:00
DolphinNoGUI CMake: Fix DolphinNoGUI build 2018-10-24 14:50:23 +10:00
DolphinQt PowerPC: Remove separate macros for paired singles 2018-12-25 10:35:09 -05:00
InputCommon Core: Switch controller interface to render widget on booting 2018-10-29 11:46:06 +10:00
UICommon Merge pull request #7499 from JosJuice/purge-game-list-cache 2018-10-28 17:00:04 +01:00
Updater Updater/UI: ITaskbarlist3 handling improvements. 2018-11-22 02:46:36 +01:00
VideoBackends Use main buffers for utility draws 2018-12-04 17:37:25 +10:00
VideoCommon Use main buffers for utility draws 2018-12-04 17:37:25 +10:00
CMakeLists.txt