summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-10-18 16:48:59 +0000
committerJim Grosbach <grosbach@apple.com>2010-10-18 16:48:59 +0000
commit00fe92da6be371867263be974c81b5bbddd6ad11 (patch)
treeb4fb329e11575774d64a6968b7f1fa3d25050543 /llvm/lib/Target
parent8166eca7b4fdea9c4c4d3e21ce1b1f6110f15253 (diff)
downloadbcm5719-llvm-00fe92da6be371867263be974c81b5bbddd6ad11.tar.gz
bcm5719-llvm-00fe92da6be371867263be974c81b5bbddd6ad11.zip
ARM addrmode4 instructions (ldm, stm and friends) can't encode an immediate
offset for stack references. Make sure we take that into account when deciding whether to reserver an emergency spill slot for the register scavenger. rdar://8559625 llvm-svn: 116714
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
index 51e62a02b3c..acb61b218ac 100644
--- a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
+++ b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
@@ -661,8 +661,9 @@ ARMBaseRegisterInfo::estimateRSStackSizeLimit(MachineFunction &MF) const {
if (hasFP(MF) && AFI->hasStackFrame())
Limit = std::min(Limit, (1U << 8) - 1);
break;
+ case ARMII::AddrMode4:
case ARMII::AddrMode6:
- // Addressing mode 6 (load/store) instructions can't encode an
+ // Addressing modes 4 & 6 (load/store) instructions can't encode an
// immediate offset for stack references.
return 0;
default:
OpenPOWER on IntegriCloud