diff options
Diffstat (limited to 'lib/Target/Blackfin')
| -rw-r--r-- | lib/Target/Blackfin/BlackfinFrameInfo.cpp | 17 | ||||
| -rw-r--r-- | lib/Target/Blackfin/BlackfinFrameInfo.h | 3 | ||||
| -rw-r--r-- | lib/Target/Blackfin/BlackfinRegisterInfo.cpp | 13 | ||||
| -rw-r--r-- | lib/Target/Blackfin/BlackfinRegisterInfo.h | 3 | 
4 files changed, 20 insertions, 16 deletions
diff --git a/lib/Target/Blackfin/BlackfinFrameInfo.cpp b/lib/Target/Blackfin/BlackfinFrameInfo.cpp index 4f9054b..c57dc30 100644 --- a/lib/Target/Blackfin/BlackfinFrameInfo.cpp +++ b/lib/Target/Blackfin/BlackfinFrameInfo.cpp @@ -16,6 +16,7 @@  #include "llvm/CodeGen/MachineFrameInfo.h"  #include "llvm/CodeGen/MachineFunction.h"  #include "llvm/CodeGen/MachineInstrBuilder.h" +#include "llvm/CodeGen/RegisterScavenging.h"  #include "llvm/Target/TargetOptions.h"  using namespace llvm; @@ -105,3 +106,19 @@ void BlackfinFrameInfo::emitEpilogue(MachineFunction &MF,    // emit an UNLINK instruction    BuildMI(MBB, MBBI, dl, TII.get(BF::UNLINK));  } + +void BlackfinFrameInfo:: +processFunctionBeforeCalleeSavedScan(MachineFunction &MF, +                                     RegScavenger *RS) const { +  MachineFrameInfo *MFI = MF.getFrameInfo(); +  const BlackfinRegisterInfo *RegInfo = +    static_cast<const BlackfinRegisterInfo*>(MF.getTarget().getRegisterInfo()); +  const TargetRegisterClass *RC = BF::DPRegisterClass; + +  if (RegInfo->requiresRegisterScavenging(MF)) { +    // Reserve a slot close to SP or frame pointer. +    RS->setScavengingFrameIndex(MFI->CreateStackObject(RC->getSize(), +                                                       RC->getAlignment(), +                                                       false)); +  } +} diff --git a/lib/Target/Blackfin/BlackfinFrameInfo.h b/lib/Target/Blackfin/BlackfinFrameInfo.h index 3b53f34..8f46b3e 100644 --- a/lib/Target/Blackfin/BlackfinFrameInfo.h +++ b/lib/Target/Blackfin/BlackfinFrameInfo.h @@ -36,6 +36,9 @@ public:    void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;    bool hasFP(const MachineFunction &MF) const; + +  void processFunctionBeforeCalleeSavedScan(MachineFunction &MF, +                                            RegScavenger *RS) const;  };  } // End llvm namespace diff --git a/lib/Target/Blackfin/BlackfinRegisterInfo.cpp b/lib/Target/Blackfin/BlackfinRegisterInfo.cpp index 23df625..9865b3b 100644 --- a/lib/Target/Blackfin/BlackfinRegisterInfo.cpp +++ b/lib/Target/Blackfin/BlackfinRegisterInfo.cpp @@ -325,19 +325,6 @@ BlackfinRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,    }  } -void BlackfinRegisterInfo:: -processFunctionBeforeCalleeSavedScan(MachineFunction &MF, -                                     RegScavenger *RS) const { -  MachineFrameInfo *MFI = MF.getFrameInfo(); -  const TargetRegisterClass *RC = BF::DPRegisterClass; -  if (requiresRegisterScavenging(MF)) { -    // Reserve a slot close to SP or frame pointer. -    RS->setScavengingFrameIndex(MFI->CreateStackObject(RC->getSize(), -                                                       RC->getAlignment(), -                                                       false)); -  } -} -  unsigned BlackfinRegisterInfo::getRARegister() const {    return BF::RETS;  } diff --git a/lib/Target/Blackfin/BlackfinRegisterInfo.h b/lib/Target/Blackfin/BlackfinRegisterInfo.h index 0c47d25..642b8ad 100644 --- a/lib/Target/Blackfin/BlackfinRegisterInfo.h +++ b/lib/Target/Blackfin/BlackfinRegisterInfo.h @@ -52,9 +52,6 @@ namespace llvm {      void eliminateFrameIndex(MachineBasicBlock::iterator II,                               int SPAdj, RegScavenger *RS = NULL) const; -    void processFunctionBeforeCalleeSavedScan(MachineFunction &MF, -                                              RegScavenger *RS) const; -      unsigned getFrameRegister(const MachineFunction &MF) const;      unsigned getRARegister() const;  | 
