Merge pull request #5298 from MerryMage/GenerateOverflow

Jit_Integer: Use constant pool in GenerateOverflow
This commit is contained in:
Markus Wick 2017-04-22 11:43:41 +02:00 committed by GitHub
commit 0a1559dc2b
1 changed files with 3 additions and 2 deletions

View File

@ -2,6 +2,7 @@
// Licensed under GPLv2+ // Licensed under GPLv2+
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <array>
#include <limits> #include <limits>
#include <vector> #include <vector>
@ -50,9 +51,9 @@ void Jit64::GenerateOverflow()
// We need to do this without modifying flags so as not to break stuff that assumes flags // We need to do this without modifying flags so as not to break stuff that assumes flags
// aren't clobbered (carry, branch merging): speed doesn't really matter here (this is really // aren't clobbered (carry, branch merging): speed doesn't really matter here (this is really
// rare). // rare).
static const u8 ovtable[4] = {0, 0, XER_SO_MASK, XER_SO_MASK}; static const std::array<u8, 4> ovtable = {0, 0, XER_SO_MASK, XER_SO_MASK};
MOVZX(32, 8, RSCRATCH, PPCSTATE(xer_so_ov)); MOVZX(32, 8, RSCRATCH, PPCSTATE(xer_so_ov));
MOV(64, R(RSCRATCH2), ImmPtr(ovtable)); LEA(64, RSCRATCH2, MConst(ovtable));
MOV(8, R(RSCRATCH), MRegSum(RSCRATCH, RSCRATCH2)); MOV(8, R(RSCRATCH), MRegSum(RSCRATCH, RSCRATCH2));
MOV(8, PPCSTATE(xer_so_ov), R(RSCRATCH)); MOV(8, PPCSTATE(xer_so_ov), R(RSCRATCH));
SetJumpTarget(exit); SetJumpTarget(exit);