mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-18 16:03:17 +00:00
Replace copyRegToReg with copyPhysReg for Sparc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108086 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
377b7b7ca3
commit
8e18a1a5cf
@ -117,29 +117,21 @@ SparcInstrInfo::InsertBranch(MachineBasicBlock &MBB,MachineBasicBlock *TBB,
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool SparcInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I,
|
||||
unsigned DestReg, unsigned SrcReg,
|
||||
const TargetRegisterClass *DestRC,
|
||||
const TargetRegisterClass *SrcRC,
|
||||
DebugLoc DL) const {
|
||||
if (DestRC != SrcRC) {
|
||||
// Not yet supported!
|
||||
return false;
|
||||
}
|
||||
|
||||
if (DestRC == SP::IntRegsRegisterClass)
|
||||
BuildMI(MBB, I, DL, get(SP::ORrr), DestReg).addReg(SP::G0).addReg(SrcReg);
|
||||
else if (DestRC == SP::FPRegsRegisterClass)
|
||||
BuildMI(MBB, I, DL, get(SP::FMOVS), DestReg).addReg(SrcReg);
|
||||
else if (DestRC == SP::DFPRegsRegisterClass)
|
||||
BuildMI(MBB, I, DL, get(Subtarget.isV9() ? SP::FMOVD : SP::FpMOVD),DestReg)
|
||||
.addReg(SrcReg);
|
||||
void SparcInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I, DebugLoc DL,
|
||||
unsigned DestReg, unsigned SrcReg,
|
||||
bool KillSrc) const {
|
||||
if (SP::IntRegsRegClass.contains(DestReg, SrcReg))
|
||||
BuildMI(MBB, I, DL, get(SP::ORrr), DestReg).addReg(SP::G0)
|
||||
.addReg(SrcReg, getKillRegState(KillSrc));
|
||||
else if (SP::FPRegsRegClass.contains(DestReg, SrcReg))
|
||||
BuildMI(MBB, I, DL, get(SP::FMOVS), DestReg)
|
||||
.addReg(SrcReg, getKillRegState(KillSrc));
|
||||
else if (SP::DFPRegsRegClass.contains(DestReg, SrcReg))
|
||||
BuildMI(MBB, I, DL, get(Subtarget.isV9() ? SP::FMOVD : SP::FpMOVD), DestReg)
|
||||
.addReg(SrcReg, getKillRegState(KillSrc));
|
||||
else
|
||||
// Can't copy this register
|
||||
return false;
|
||||
|
||||
return true;
|
||||
llvm_unreachable("Impossible reg-to-reg copy");
|
||||
}
|
||||
|
||||
void SparcInstrInfo::
|
||||
|
@ -71,12 +71,10 @@ public:
|
||||
const SmallVectorImpl<MachineOperand> &Cond,
|
||||
DebugLoc DL) const;
|
||||
|
||||
virtual bool copyRegToReg(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I,
|
||||
unsigned DestReg, unsigned SrcReg,
|
||||
const TargetRegisterClass *DestRC,
|
||||
const TargetRegisterClass *SrcRC,
|
||||
DebugLoc DL) const;
|
||||
virtual void copyPhysReg(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I, DebugLoc DL,
|
||||
unsigned DestReg, unsigned SrcReg,
|
||||
bool KillSrc) const;
|
||||
|
||||
virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator MBBI,
|
||||
|
Loading…
x
Reference in New Issue
Block a user