summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/AsyncRequests.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-06-03 16:45:20 -0400
committerLioncash <mathew1800@gmail.com>2018-06-03 18:15:47 -0400
commit9068109b3ed00f6960d1554b1532f763ca84014a (patch)
treefe8981158348817e97010c6bad6ce8660fa24122 /Source/Core/VideoCommon/AsyncRequests.cpp
parentc22205cd7e70a46558f6e7e5532ad5154b4e93bd (diff)
Interpreter: Unset FPSCR.FI and FPSCR.FR for QNaN and infinity input operands
This hardware behavior makes sense, as the FI bit is used to signify an inexact result. An inexact result is a form of value that results during the rounding phase of denormalization. If any bits of the significand are lost during said rounding, then the result is considered to be inexact. However NaN and infinity are not classed as subnormals and therefore don't undergo the denormalization step, making loss of precision not possible (in NaN's case, numerically rounding something that is literally Not a Number doesn't even make sense). FR is set to indicate whether or not the last arithmetic or rounding and conversion instruction that rounded the intermediate result incremented the fractional portion of the result. Given neither input types would be affected by this, this should also be unset. This corrects more of the exceptional case handling for these values to match hardware.
Diffstat (limited to 'Source/Core/VideoCommon/AsyncRequests.cpp')
0 files changed, 0 insertions, 0 deletions