[llvm] r174885 - AArch64: fix build on some MSVC versions
Tim Northover
Tim.Northover at arm.com
Mon Feb 11 06:25:52 PST 2013
Author: tnorthover
Date: Mon Feb 11 08:25:52 2013
New Revision: 174885
URL: http://llvm.org/viewvc/llvm-project?rev=174885&view=rev
Log:
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.
Modified:
llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.cpp
Modified: llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.cpp?rev=174885&r1=174884&r2=174885&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.cpp Mon Feb 11 08:25:52 2013
@@ -165,8 +165,8 @@ AArch64RegisterInfo::eliminateCallFrameP
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::eliminateCallFrameP
// 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) {
More information about the llvm-commits
mailing list