diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-10-07 21:43:15 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-10-07 21:43:15 -0500 |
| commit | 5f0011d065ff1391bced8f90ed7f489aea504538 (patch) | |
| tree | 87d9410a4846e36173c4230d525a10ccdee3d233 /Source/Core/VideoCommon/VideoConfig.cpp | |
| parent | 38b64fd0776599fe9112ec398c0379d369b76a3a (diff) | |
Fix ARMv7 JIT from XER optimization.
This was a subtle bug I introduced since I removed a LDR in one of the ComputeCarry functions.
Basically since I wasn't loading the XER value prior to operations when I did a BIC tmp, tmp, 1 it would clear the first bit in our temp register but
retain the rest of the "random" data from that temp register. This would then save in to xer_ca, which the Interpreter will use later without any
masking to generate the XER value. Our XER generation helper functions don't do any masking since they were only expecting a single bit worth of data
in xer_ca with the rest being zero.
So now we only have one bit of data being stored in xer_ca from the ARMv7 JIT recompiler, and also a slight optimization in the ComputeCarry function
that is used on the immediate path. There wasn't any reason to load xer_ca since it only contains one bit of data now.
Diffstat (limited to 'Source/Core/VideoCommon/VideoConfig.cpp')
0 files changed, 0 insertions, 0 deletions
