diff options
author | Chris Lattner <sabre@nondot.org> | 2004-08-21 19:45:10 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-08-21 19:45:10 +0000 |
commit | fa1face30a1943aa17560f6f6e10bb667b257065 (patch) | |
tree | 28c000d938d360af56973cdaa5b7bc82084b629a | |
parent | 987b5cc5578410c3bbc6077c2e2aa5df33cd3447 (diff) |
Now that we have per-register spill size/alignment info, remove more uses
of getRegClass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15967 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/PrologEpilogInserter.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/CodeGen/PrologEpilogInserter.cpp b/lib/CodeGen/PrologEpilogInserter.cpp index e997ead86f..213371949c 100644 --- a/lib/CodeGen/PrologEpilogInserter.cpp +++ b/lib/CodeGen/PrologEpilogInserter.cpp @@ -170,8 +170,6 @@ void PEI::calculateCallerSavedRegisters(MachineFunction &Fn) { // stack slots for them. for (unsigned i = 0, e = RegsToSave.size(); i != e; ++i) { unsigned Reg = RegsToSave[i]; - int FrameIdx; - const TargetRegisterClass *RC = RegInfo->getRegClass(Reg); // Check to see if this physreg must be spilled to a particular stack slot // on this target. @@ -180,12 +178,15 @@ void PEI::calculateCallerSavedRegisters(MachineFunction &Fn) { FixedSlot->first != Reg) ++FixedSlot; + int FrameIdx; if (FixedSlot == FixedSpillSlots+NumFixedSpillSlots) { // Nope, just spill it anywhere convenient. - FrameIdx = FFI->CreateStackObject(RC->getSize(), RC->getAlignment()); + FrameIdx = FFI->CreateStackObject(RegInfo->getSpillSize(Reg), + RegInfo->getSpillAlignment(Reg)); } else { // Spill it to the stack where we must. - FrameIdx = FFI->CreateFixedObject(RC->getSize(), FixedSlot->second); + FrameIdx = FFI->CreateFixedObject(RegInfo->getSpillSize(Reg), + FixedSlot->second); } StackSlots.push_back(FrameIdx); } |