summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsInstrFormats.td
diff options
context:
space:
mode:
authorKai Nacke <kai.nacke@redstar.de>2014-04-02 18:40:43 +0000
committerKai Nacke <kai.nacke@redstar.de>2014-04-02 18:40:43 +0000
commit13673ac704e5b95e24f2aab350a312597a38d406 (patch)
tree66a1f8b055584d474f1584da5ed1a21f526f4c84 /llvm/lib/Target/Mips/MipsInstrFormats.td
parentc392617cff4f5293c6a1c62a1d2dd3aa048c68ac (diff)
downloadbcm5719-llvm-13673ac704e5b95e24f2aab350a312597a38d406.tar.gz
bcm5719-llvm-13673ac704e5b95e24f2aab350a312597a38d406.zip
[mips] Add more Octeon cnMips instructions
Adds the instructions ext/ext32/cins/cins32. It also changes pop/dpop to accept the two operand version and adds a simple pattern to generate baddu. Tests for the two operand versions (including baddu/dmul/dpop/pop) and the code generation pattern for baddu are included. Reviewed by: Daniel.Sanders@imgtec.com llvm-svn: 205449
Diffstat (limited to 'llvm/lib/Target/Mips/MipsInstrFormats.td')
-rw-r--r--llvm/lib/Target/Mips/MipsInstrFormats.td16
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsInstrFormats.td b/llvm/lib/Target/Mips/MipsInstrFormats.td
index 5b690ac3b7e..38fac886048 100644
--- a/llvm/lib/Target/Mips/MipsInstrFormats.td
+++ b/llvm/lib/Target/Mips/MipsInstrFormats.td
@@ -489,6 +489,22 @@ class WAIT_FM : StdArch {
let Inst{5-0} = 0x20;
}
+class EXTS_FM<bits<6> funct> : StdArch {
+ bits<5> rt;
+ bits<5> rs;
+ bits<5> pos;
+ bits<5> lenm1;
+
+ bits<32> Inst;
+
+ let Inst{31-26} = 0x1c;
+ let Inst{25-21} = rs;
+ let Inst{20-16} = rt;
+ let Inst{15-11} = lenm1;
+ let Inst{10-6} = pos;
+ let Inst{5-0} = funct;
+}
+
class MTMR_FM<bits<6> funct> : StdArch {
bits<5> rs;
OpenPOWER on IntegriCloud