diff options
| author | Matheus Almeida <matheus.almeida@imgtec.com> | 2014-01-29 14:05:28 +0000 |
|---|---|---|
| committer | Matheus Almeida <matheus.almeida@imgtec.com> | 2014-01-29 14:05:28 +0000 |
| commit | 74070327b23b2ff8efc3722d60c4584cb6a2ee2d (patch) | |
| tree | b9fe7255f4a199fe50c80891b6fad8a3682afd7a /llvm/lib/Target/Mips/MipsMSAInstrFormats.td | |
| parent | ce0f2175d78b5dc33cab8d04746d90099a9f49ad (diff) | |
| download | bcm5719-llvm-74070327b23b2ff8efc3722d60c4584cb6a2ee2d.tar.gz bcm5719-llvm-74070327b23b2ff8efc3722d60c4584cb6a2ee2d.zip | |
[mips][msa] Add copy_{u,s}.d.
These instructions are only available on Mips64 cores
that implement the MSA ASE.
llvm-svn: 200398
Diffstat (limited to 'llvm/lib/Target/Mips/MipsMSAInstrFormats.td')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsMSAInstrFormats.td | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsMSAInstrFormats.td b/llvm/lib/Target/Mips/MipsMSAInstrFormats.td index 27f0bde766c..d463d60354c 100644 --- a/llvm/lib/Target/Mips/MipsMSAInstrFormats.td +++ b/llvm/lib/Target/Mips/MipsMSAInstrFormats.td @@ -15,6 +15,10 @@ class MSAInst : MipsInst<(outs), (ins), "", [], NoItinerary, FrmOther> { let Inst{31-26} = 0b011110; } +class MSA64Inst : MSAInst { + let Predicates = [HasMSA, HasMips64]; +} + class MSACBranch : MSAInst { let Inst{31-26} = 0b010001; } @@ -274,6 +278,19 @@ class MSA_ELM_COPY_W_FMT<bits<4> major, bits<6> minor>: MSAInst { let Inst{5-0} = minor; } +class MSA_ELM_COPY_D_FMT<bits<4> major, bits<6> minor>: MSA64Inst { + bits<4> n; + bits<5> ws; + bits<5> rd; + + let Inst{25-22} = major; + let Inst{21-17} = 0b11100; + let Inst{16} = n{0}; + let Inst{15-11} = ws; + let Inst{10-6} = rd; + let Inst{5-0} = minor; +} + class MSA_ELM_INSERT_B_FMT<bits<4> major, bits<6> minor>: MSAInst { bits<6> n; bits<5> rs; |

