diff options
author | Jim Grosbach <grosbach@apple.com> | 2009-09-28 22:08:06 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2009-09-28 22:08:06 +0000 |
commit | ec9eef4a15157fc0a05feff933848aa9283bd1af (patch) | |
tree | 3916cdadaad5a415c7c153762f2f8e867c508699 | |
parent | d0c5a292aaf4d9d69c77fe059bfcbab0496d5f2c (diff) |
Adjust processFunctionBeforeCalleeSavedScan() to correctly reserve a stack
slot for the register scavenger when compiling Thumb1 functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83023 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMBaseRegisterInfo.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp index ab3dcd6992..9b92309392 100644 --- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -536,7 +536,8 @@ ARMBaseRegisterInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF, } } - if (CSRegClasses[i] == ARM::GPRRegisterClass) { + if (CSRegClasses[i] == ARM::GPRRegisterClass || + CSRegClasses[i] == ARM::tGPRRegisterClass) { if (Spilled) { NumGPRSpills++; @@ -667,7 +668,8 @@ ARMBaseRegisterInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF, NumExtras--; } } - while (NumExtras && !UnspilledCS2GPRs.empty()) { + while (NumExtras && !UnspilledCS2GPRs.empty() && + !AFI->isThumb1OnlyFunction()) { unsigned Reg = UnspilledCS2GPRs.back(); UnspilledCS2GPRs.pop_back(); if (!isReservedReg(MF, Reg)) { |