diff options
author | Chris Lattner <sabre@nondot.org> | 2006-10-24 16:39:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-10-24 16:39:19 +0000 |
commit | b7267bd0345c545a51d11a0970cc1fd1f3fb2e8d (patch) | |
tree | d46fd91bb1015fac8ccb8647f0c64ca2461d16c1 /llvm/lib/Target/Sparc | |
parent | f054003ba7eb2124163165e7487c2329e887cd8f (diff) | |
download | bcm5719-llvm-b7267bd0345c545a51d11a0970cc1fd1f3fb2e8d.tar.gz bcm5719-llvm-b7267bd0345c545a51d11a0970cc1fd1f3fb2e8d.zip |
implement uncond branch insertion for sparc to fix regressions from last night
due to branchfolding
llvm-svn: 31157
Diffstat (limited to 'llvm/lib/Target/Sparc')
-rw-r--r-- | llvm/lib/Target/Sparc/SparcInstrInfo.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/Sparc/SparcInstrInfo.h | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/SparcInstrInfo.cpp b/llvm/lib/Target/Sparc/SparcInstrInfo.cpp index 699c9d21d6e..6dbb5fe08c0 100644 --- a/llvm/lib/Target/Sparc/SparcInstrInfo.cpp +++ b/llvm/lib/Target/Sparc/SparcInstrInfo.cpp @@ -96,3 +96,11 @@ unsigned SparcInstrInfo::isStoreToStackSlot(MachineInstr *MI, } return 0; } + +void SparcInstrInfo::InsertBranch(MachineBasicBlock &MBB,MachineBasicBlock *TBB, + MachineBasicBlock *FBB, + const std::vector<MachineOperand> &Cond)const{ + // Can only insert uncond branches so far. + assert(Cond.empty() && !FBB && TBB && "Can only handle uncond branches!"); + BuildMI(&MBB, SP::BA, 1).addMBB(TBB); +}
\ No newline at end of file diff --git a/llvm/lib/Target/Sparc/SparcInstrInfo.h b/llvm/lib/Target/Sparc/SparcInstrInfo.h index 166793e2e04..9df9bad1205 100644 --- a/llvm/lib/Target/Sparc/SparcInstrInfo.h +++ b/llvm/lib/Target/Sparc/SparcInstrInfo.h @@ -61,6 +61,11 @@ public: /// not, return 0. This predicate must return 0 if the instruction has /// any side effects other than storing to the stack slot. virtual unsigned isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) const; + + + virtual void InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, + MachineBasicBlock *FBB, + const std::vector<MachineOperand> &Cond) const; }; } |