diff options
author | Owen Anderson <resistor@mac.com> | 2007-12-31 06:32:00 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-12-31 06:32:00 +0000 |
commit | 7a73ae9a864b94a03e8200540c541db8c5e59dd7 (patch) | |
tree | d367bb9b537b2b378456fd33d351f37b6abf684d /llvm/lib/Target/IA64/IA64InstrInfo.cpp | |
parent | 574e7166e07ee64888faf8a60ded7855c56cf0a7 (diff) | |
download | bcm5719-llvm-7a73ae9a864b94a03e8200540c541db8c5e59dd7.tar.gz bcm5719-llvm-7a73ae9a864b94a03e8200540c541db8c5e59dd7.zip |
Move copyRegToReg from MRegisterInfo to TargetInstrInfo. This is part of the
Machine-level API cleanup instigated by Chris.
llvm-svn: 45470
Diffstat (limited to 'llvm/lib/Target/IA64/IA64InstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/IA64/IA64InstrInfo.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/Target/IA64/IA64InstrInfo.cpp b/llvm/lib/Target/IA64/IA64InstrInfo.cpp index 7f7d895aa0a..ea3336cf16e 100644 --- a/llvm/lib/Target/IA64/IA64InstrInfo.cpp +++ b/llvm/lib/Target/IA64/IA64InstrInfo.cpp @@ -56,3 +56,21 @@ IA64InstrInfo::InsertBranch(MachineBasicBlock &MBB,MachineBasicBlock *TBB, BuildMI(&MBB, get(IA64::BRL_NOTCALL)).addMBB(TBB); return 1; } + +void IA64InstrInfo::copyRegToReg(MachineBasicBlock &MBB, + MachineBasicBlock::iterator MI, + unsigned DestReg, unsigned SrcReg, + const TargetRegisterClass *DestRC, + const TargetRegisterClass *SrcRC) const { + if (DestRC != SrcRC) { + cerr << "Not yet supported!"; + abort(); + } + + if(DestRC == IA64::PRRegisterClass ) // if a bool, we use pseudocode + // (SrcReg) DestReg = cmp.eq.unc(r0, r0) + BuildMI(MBB, MI, get(IA64::PCMPEQUNC), DestReg) + .addReg(IA64::r0).addReg(IA64::r0).addReg(SrcReg); + else // otherwise, MOV works (for both gen. regs and FP regs) + BuildMI(MBB, MI, get(IA64::MOV), DestReg).addReg(SrcReg); +} |