From 0f0127f4a686ed55e5b8344d576999259f8c2297 Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Mon, 18 Oct 2010 16:48:59 +0000 Subject: [PATCH] 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116714 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMBaseRegisterInfo.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp index 51e62a02b3c..acb61b218ac 100644 --- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/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: -- 2.34.1