diff options
| author | Pokechu22 <Pokechu022@gmail.com> | 2021-08-15 17:00:00 -0700 |
|---|---|---|
| committer | Pokechu22 <Pokechu022@gmail.com> | 2021-08-15 19:45:44 -0700 |
| commit | 14119c86a42ad0b533be807354d67362e6a28279 (patch) | |
| tree | 10103460103b03b37dd44ba614c808105fdaa122 /Source/Core/VideoCommon/FramebufferManager.cpp | |
| parent | 4c179fe448e64b2a2b4429596971b5ac2643f2a7 (diff) | |
DSPInterpreter: Fix IsLess
`IsLess` would incorrectly return true if both `SR_OVERFLOW` and `SR_SIGN` are set, as `(sr & SR_OVERFLOW) != (sr & SR_SIGN)` becomes `SR_OVERFLOW != SR_SIGN` which is true as the two masks are different. This broke in e651592ef56521f6db71f8a671fe8c20b948d338.
This issue only affected the DSP LLE Interpreter, and not the DSP LLE JIT.
I've also included a simple test case for this. `ax0.l` (on the top left) is set to 0 if the instruction following `IFL` does not execute and to 1 if it is executed.
Diffstat (limited to 'Source/Core/VideoCommon/FramebufferManager.cpp')
0 files changed, 0 insertions, 0 deletions
