diff options
| author | Daniel Sanders <daniel.sanders@imgtec.com> | 2016-06-14 09:11:33 +0000 |
|---|---|---|
| committer | Daniel Sanders <daniel.sanders@imgtec.com> | 2016-06-14 09:11:33 +0000 |
| commit | d2a49ec3ab46594f7d3f5845a3ada0daa0d4f00b (patch) | |
| tree | 024d2865bb57eb21d0b1a7531676df2c796f180a /llvm/lib | |
| parent | 32b2d6b1602b4192476935eb0004c78f18d26a34 (diff) | |
| download | bcm5719-llvm-d2a49ec3ab46594f7d3f5845a3ada0daa0d4f00b.tar.gz bcm5719-llvm-d2a49ec3ab46594f7d3f5845a3ada0daa0d4f00b.zip | |
[mips][msa] copyPhysReg() should not set RegState::Define on result of CTCMSA.
Summary:
The machine verifier reports 'Explicit operand marked as def' when it is
manually specified even though it agrees with the operand info.
Reviewers: sdardis
Subscribers: dsanders, sdardis, llvm-commits
Differential Revision: http://reviews.llvm.org/D21065
llvm-svn: 272646
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsSEInstrInfo.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp b/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp index 270a95a87a9..5c8f6cd1ab1 100644 --- a/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp +++ b/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp @@ -129,9 +129,12 @@ void MipsSEInstrInfo::copyPhysReg(MachineBasicBlock &MBB, .addReg(SrcReg, getKillRegState(KillSrc)).addImm(1 << 4) .addReg(DestReg, RegState::ImplicitDefine); return; + } else if (Mips::MSACtrlRegClass.contains(DestReg)) { + BuildMI(MBB, I, DL, get(Mips::CTCMSA)) + .addReg(DestReg) + .addReg(SrcReg, getKillRegState(KillSrc)); + return; } - else if (Mips::MSACtrlRegClass.contains(DestReg)) - Opc = Mips::CTCMSA; } else if (Mips::FGR32RegClass.contains(DestReg, SrcReg)) Opc = Mips::FMOV_S; |

