[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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193078 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matheus Almeida
2013-10-21 12:26:50 +00:00
parent cebd401022
commit 006cff8d7b
6 changed files with 242 additions and 14 deletions

View File

@@ -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;