diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-01-20 19:12:24 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-01-20 19:12:24 +0000 |
commit | 04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1 (patch) | |
tree | 83e8495f021a9e995df02cb9df4ed332e369e336 /lib/Target/CellSPU | |
parent | a913f4fca947c195a675e04ba625fe9e67d1a865 (diff) | |
download | external_llvm-04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1.zip external_llvm-04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1.tar.gz external_llvm-04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1.tar.bz2 |
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CellSPU')
-rw-r--r-- | lib/Target/CellSPU/SPUInstrInfo.cpp | 5 | ||||
-rw-r--r-- | lib/Target/CellSPU/SPUInstrInfo.h | 11 |
2 files changed, 9 insertions, 7 deletions
diff --git a/lib/Target/CellSPU/SPUInstrInfo.cpp b/lib/Target/CellSPU/SPUInstrInfo.cpp index fa6e33b..5802eb6 100644 --- a/lib/Target/CellSPU/SPUInstrInfo.cpp +++ b/lib/Target/CellSPU/SPUInstrInfo.cpp @@ -64,7 +64,10 @@ SPUInstrInfo::getPointerRegClass() const bool SPUInstrInfo::isMoveInstr(const MachineInstr& MI, unsigned& sourceReg, - unsigned& destReg) const { + unsigned& destReg, + unsigned& SrcSR, unsigned& DstSR) const { + SrcSR = DstSR = 0; // No sub-registers. + // Primarily, ORI and OR are generated by copyRegToReg. But, there are other // cases where we can safely say that what's being done is really a move // (see how PowerPC does this -- it's the model for this code too.) diff --git a/lib/Target/CellSPU/SPUInstrInfo.h b/lib/Target/CellSPU/SPUInstrInfo.h index bc57e15..7bbdfad 100644 --- a/lib/Target/CellSPU/SPUInstrInfo.h +++ b/lib/Target/CellSPU/SPUInstrInfo.h @@ -49,12 +49,11 @@ namespace llvm { /// This is used for addressing modes. virtual const TargetRegisterClass *getPointerRegClass() const; - // Return true if the instruction is a register to register move and - // leave the source and dest operands in the passed parameters. - // - virtual bool isMoveInstr(const MachineInstr& MI, - unsigned& sourceReg, - unsigned& destReg) const; + /// Return true if the instruction is a register to register move and return + /// the source and dest operands and their sub-register indices by reference. + virtual bool isMoveInstr(const MachineInstr &MI, + unsigned &SrcReg, unsigned &DstReg, + unsigned &SrcSubIdx, unsigned &DstSubIdx) const; unsigned isLoadFromStackSlot(const MachineInstr *MI, int &FrameIndex) const; |