From 5264202a383162edb660bf333dd496b255fd9e6c Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Mon, 28 Sep 2009 22:08:06 +0000 Subject: Adjust processFunctionBeforeCalleeSavedScan() to correctly reserve a stack slot for the register scavenger when compiling Thumb1 functions. llvm-svn: 83023 --- llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'llvm/lib') diff --git a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp index ab3dcd6992c..9b923093923 100644 --- a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/llvm/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)) { -- cgit v1.2.3