1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 11:33:24 +02:00

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
This commit is contained in:
Jim Grosbach 2010-10-18 16:48:59 +00:00
parent f93e92a4c1
commit 3e41568604

View File

@ -661,8 +661,9 @@ ARMBaseRegisterInfo::estimateRSStackSizeLimit(MachineFunction &MF) const {
if (hasFP(MF) && AFI->hasStackFrame()) if (hasFP(MF) && AFI->hasStackFrame())
Limit = std::min(Limit, (1U << 8) - 1); Limit = std::min(Limit, (1U << 8) - 1);
break; break;
case ARMII::AddrMode4:
case ARMII::AddrMode6: 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. // immediate offset for stack references.
return 0; return 0;
default: default: