summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsMSAInstrFormats.td
diff options
context:
space:
mode:
authorMatheus Almeida <matheus.almeida@imgtec.com>2013-10-21 12:26:50 +0000
committerMatheus Almeida <matheus.almeida@imgtec.com>2013-10-21 12:26:50 +0000
commita591fdc63c1bd1ee227757724a44331180b92c07 (patch)
tree17141db49e5ba594b19dc4d62407bf2f6f643db7 /llvm/lib/Target/Mips/MipsMSAInstrFormats.td
parent5798c6f3bb9813f9350ff1935098426cdac7e37c (diff)
downloadbcm5719-llvm-a591fdc63c1bd1ee227757724a44331180b92c07.tar.gz
bcm5719-llvm-a591fdc63c1bd1ee227757724a44331180b92c07.zip
[mips][msa] Direct Object Emission support for CTCMSA and CFCMSA.
These instructions are logically related as they allow read/write of MSA control registers. Currently MSA control registers are emitted by number but hopefully that will change as soon as GAS starts accepting them by name as that would make the assembly easier to read. llvm-svn: 193078
Diffstat (limited to 'llvm/lib/Target/Mips/MipsMSAInstrFormats.td')
-rw-r--r--llvm/lib/Target/Mips/MipsMSAInstrFormats.td20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsMSAInstrFormats.td b/llvm/lib/Target/Mips/MipsMSAInstrFormats.td
index c9b37451701..8fe4dbca569 100644
--- a/llvm/lib/Target/Mips/MipsMSAInstrFormats.td
+++ b/llvm/lib/Target/Mips/MipsMSAInstrFormats.td
@@ -150,6 +150,26 @@ class MSA_ELM_FMT<bits<10> major, bits<6> minor>: MSAInst {
let Inst{5-0} = minor;
}
+class MSA_ELM_CFCMSA_FMT<bits<10> major, bits<6> minor>: MSAInst {
+ bits<5> rd;
+ bits<5> cs;
+
+ let Inst{25-16} = major;
+ let Inst{15-11} = cs;
+ let Inst{10-6} = rd;
+ let Inst{5-0} = minor;
+}
+
+class MSA_ELM_CTCMSA_FMT<bits<10> major, bits<6> minor>: MSAInst {
+ bits<5> rs;
+ bits<5> cd;
+
+ let Inst{25-16} = major;
+ let Inst{15-11} = rs;
+ let Inst{10-6} = cd;
+ let Inst{5-0} = minor;
+}
+
class MSA_ELM_B_FMT<bits<4> major, bits<6> minor>: MSAInst {
bits<4> n;
bits<5> ws;
OpenPOWER on IntegriCloud