mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-26 06:04:47 +00:00
AArch64: fix build on some MSVC versions
This does two things: It removes a call to abs() which may have "long long" parameter on Windows, which is not necessarily available in C++03. It also corrects the signedness of Amount, which was relying on implementation-defined conversions previously. Code was already tested (albeit in an implemnetation defined way) so no extra tests. llvm-svn: 174885
This commit is contained in:
parent
be9ad5cfe1
commit
f2c4616277
@ -165,8 +165,8 @@ AArch64RegisterInfo::eliminateCallFramePseudoInstr(MachineFunction &MF,
|
||||
if (!TFI->hasReservedCallFrame(MF)) {
|
||||
unsigned Align = TFI->getStackAlignment();
|
||||
|
||||
uint64_t Amount = MI->getOperand(0).getImm();
|
||||
Amount = (Amount + Align - 1)/Align * Align;
|
||||
int64_t Amount = MI->getOperand(0).getImm();
|
||||
Amount = RoundUpToAlignment(Amount, Align);
|
||||
if (!IsDestroy) Amount = -Amount;
|
||||
|
||||
// N.b. if CalleePopAmount is valid but zero (i.e. callee would pop, but it
|
||||
@ -177,7 +177,7 @@ AArch64RegisterInfo::eliminateCallFramePseudoInstr(MachineFunction &MF,
|
||||
// because there's no guaranteed temporary register available. Mostly call
|
||||
// frames will be allocated at the start of a function so this is OK, but
|
||||
// it is a limitation that needs dealing with.
|
||||
assert(abs(Amount) < 0xfff && "call frame too large");
|
||||
assert(Amount > -0xfff && Amount < 0xfff && "call frame too large");
|
||||
emitSPUpdate(MBB, MI, dl, TII, AArch64::NoRegister, Amount);
|
||||
}
|
||||
} else if (CalleePopAmount != 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user