summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureCacheBase.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-06-19 15:17:29 -0400
committerLioncash <mathew1800@gmail.com>2018-06-19 18:09:03 -0400
commit72e21bc679f3fdc02ca9e083cf9e0a748f0b02ce (patch)
tree8a6b8fe8af7752b8e29cf06a229b8c37723f6829 /Source/Core/VideoCommon/TextureCacheBase.cpp
parent18c3e0302f6bca8546516173f4cb3ab0aa896a90 (diff)
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.
Diffstat (limited to 'Source/Core/VideoCommon/TextureCacheBase.cpp')
0 files changed, 0 insertions, 0 deletions