diff options
author | Chuang-Yu Cheng <cycheng@multicorewareinc.com> | 2016-04-06 01:46:45 +0000 |
---|---|---|
committer | Chuang-Yu Cheng <cycheng@multicorewareinc.com> | 2016-04-06 01:46:45 +0000 |
commit | eaf4b3d75ca523b19b4da1a329775ae988633c07 (patch) | |
tree | 9bdea760473e82efca557257789ae7d44f4c8a52 /llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp | |
parent | 99abb2728b1fed706c892d93327ebb3bcc0c939c (diff) | |
download | bcm5719-llvm-eaf4b3d75ca523b19b4da1a329775ae988633c07.tar.gz bcm5719-llvm-eaf4b3d75ca523b19b4da1a329775ae988633c07.zip |
[Power9] Implement copy-paste, msgsync, slb, and stop instructions
This patch implements the following BookII and Book III instructions:
- copy copy_first cp_abort paste paste. paste_last
- msgsync
- slbieg slbsync
- stop
Total 10 instructions
Reviewers: nemanjai hfinkel tjablin amehsan kbarton
llvm-svn: 265504
Diffstat (limited to 'llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp')
-rw-r--r-- | llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp index 13d002517de..c35c2b1cf2f 100644 --- a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp +++ b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp @@ -1199,6 +1199,29 @@ void PPCAsmParser::ProcessInstruction(MCInst &Inst, } break; } + case PPC::CP_COPYx: + case PPC::CP_COPY_FIRST: { + MCInst TmpInst; + TmpInst.setOpcode(PPC::CP_COPY); + TmpInst.addOperand(Inst.getOperand(0)); + TmpInst.addOperand(Inst.getOperand(1)); + TmpInst.addOperand(MCOperand::createImm(Opcode == PPC::CP_COPYx ? 0 : 1)); + + Inst = TmpInst; + break; + } + case PPC::CP_PASTEx : + case PPC::CP_PASTE_LAST: { + MCInst TmpInst; + TmpInst.setOpcode(Opcode == PPC::CP_PASTEx ? + PPC::CP_PASTE : PPC::CP_PASTEo); + TmpInst.addOperand(Inst.getOperand(0)); + TmpInst.addOperand(Inst.getOperand(1)); + TmpInst.addOperand(MCOperand::createImm(Opcode == PPC::CP_PASTEx ? 0 : 1)); + + Inst = TmpInst; + break; + } } } |