Require a base pointer for stack realignment when SP may vary dynamically.
authorBob Wilson <bob.wilson@apple.com>
Tue, 20 Mar 2012 19:28:25 +0000 (19:28 +0000)
committerBob Wilson <bob.wilson@apple.com>
Tue, 20 Mar 2012 19:28:25 +0000 (19:28 +0000)
commitaaa1e2f820e61a2f4b878d97599b3ca093bc96ed
treeffa6b0424bcd8b730714a273c6f5590484759e7d
parent055a8127c9ffee287807fe7cc1b115d0f40162b0
Require a base pointer for stack realignment when SP may vary dynamically.

ARMBaseRegisterInfo::canRealignStack was checking for variable-sized objects
but not for stack adjustments around calls.  Use hasReservedCallFrame() to
check for both.  The hasBasePointer function was already correctly checking
both conditions, so the effect of this was that a base pointer would be used
without checking whether the base pointer register could be reserved. I don't
have a small testcase for this.

<rdar://problem/11075906>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153110 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMBaseRegisterInfo.cpp