dolphin/Source/Core
Lioncash 72e21bc679 Interpreter_FPUtils: Handle the FPSCR.ZE and FPSCR.VE flags with arithmetic instructions
According to PEM 3.3.6.1, if a division by zero occurs and FPSCR.ZE is
set, then the result of the instruction operation is unchanged (see
table 3-13). Similarly, if an invalid operation occurs and FPSCR.VE is
set, then the destination should also remain unchanged (see table 3-12).
Hardware also matches this behavior.

We were handling this for other relevant instructions, but we weren't
doing so for the arithmetic instructions. This corrects that.

This also alters our NI_* functions to return an FPResult type, which
allows us to see which kind of exception in particular is set in
exceptional cases. This is necessary for cases like the fdiv
instructions, which requires handling both ZE and VE being potentially
set.
2018-06-19 18:09:03 -04:00
..
AudioCommon AudioCommon: Implement WASAPI 2018-05-26 13:08:10 +02:00
Common PowerPC: Convert CPUCore enum into an enum class 2018-06-15 10:27:59 -04:00
Core Interpreter_FPUtils: Handle the FPSCR.ZE and FPSCR.VE flags with arithmetic instructions 2018-06-19 18:09:03 -04:00
DiscIO ChunkFile: Remove unnecessary includes 2018-06-09 16:49:59 -04:00
DolphinNoGUI Common: Move host communication enum to Host.h 2018-05-28 14:34:59 -04:00
DolphinQt2 Merge pull request #7127 from Techjar/patch-4 2018-06-19 13:50:25 +02:00
DolphinWX PowerPC: Convert CPUCore enum into an enum class 2018-06-15 10:27:59 -04:00
InputCommon Merge pull request #7062 from robopilot99/master 2018-06-08 14:04:03 +02:00
UICommon ChunkFile: Remove unnecessary includes 2018-06-09 16:49:59 -04:00
Updater Updater: Show error when trying to launch directly 2018-05-05 23:32:08 +02:00
VideoBackends Merge pull request #7075 from Ebola16/DumpObjects 2018-06-06 15:20:14 +02:00
VideoCommon ConfigManager: Convert GPUDeterminismMode into an enum class 2018-06-15 14:45:30 -04:00
CMakeLists.txt Moved NoGUI out of DolphinWx. 2017-03-08 01:24:18 -08:00