summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsInstrFormats.td
diff options
context:
space:
mode:
authorZoran Jovanovic <zoran.jovanovic@imgtec.com>2013-12-19 16:25:00 +0000
committerZoran Jovanovic <zoran.jovanovic@imgtec.com>2013-12-19 16:25:00 +0000
commit8e918c3c4d255cc4396e26f1498d003fda5879de (patch)
tree2075f8623a9bd093d01f1c70eec0c478533cad1d /llvm/lib/Target/Mips/MipsInstrFormats.td
parent9ef61a7ca78e61e82ca13cdf5c578bb518bd0e9b (diff)
downloadbcm5719-llvm-8e918c3c4d255cc4396e26f1498d003fda5879de.tar.gz
bcm5719-llvm-8e918c3c4d255cc4396e26f1498d003fda5879de.zip
Support for microMIPS control instructions.
llvm-svn: 197696
Diffstat (limited to 'llvm/lib/Target/Mips/MipsInstrFormats.td')
-rw-r--r--llvm/lib/Target/Mips/MipsInstrFormats.td20
1 files changed, 15 insertions, 5 deletions
diff --git a/llvm/lib/Target/Mips/MipsInstrFormats.td b/llvm/lib/Target/Mips/MipsInstrFormats.td
index 737a018c67a..21ee605ac02 100644
--- a/llvm/lib/Target/Mips/MipsInstrFormats.td
+++ b/llvm/lib/Target/Mips/MipsInstrFormats.td
@@ -401,7 +401,7 @@ class BGEZAL_FM<bits<5> funct> : StdArch {
let Inst{15-0} = offset;
}
-class SYNC_FM {
+class SYNC_FM : StdArch {
bits<5> stype;
bits<32> Inst;
@@ -479,11 +479,21 @@ class TEQI_FM<bits<5> funct> : StdArch {
let Inst{20-16} = funct;
let Inst{15-0} = imm16;
}
+
+class WAIT_FM : StdArch {
+ bits<32> Inst;
+
+ let Inst{31-26} = 0x10;
+ let Inst{25} = 1;
+ let Inst{24-6} = 0;
+ let Inst{5-0} = 0x20;
+}
+
//===----------------------------------------------------------------------===//
// System calls format <op|code_|funct>
//===----------------------------------------------------------------------===//
-class SYS_FM<bits<6> funct>
+class SYS_FM<bits<6> funct> : StdArch
{
bits<20> code_;
bits<32> Inst;
@@ -496,7 +506,7 @@ class SYS_FM<bits<6> funct>
// Break instruction format <op|code_1|funct>
//===----------------------------------------------------------------------===//
-class BRK_FM<bits<6> funct>
+class BRK_FM<bits<6> funct> : StdArch
{
bits<10> code_1;
bits<10> code_2;
@@ -511,7 +521,7 @@ class BRK_FM<bits<6> funct>
// Exception return format <Cop0|1|0|funct>
//===----------------------------------------------------------------------===//
-class ER_FM<bits<6> funct>
+class ER_FM<bits<6> funct> : StdArch
{
bits<32> Inst;
let Inst{31-26} = 0x10;
@@ -525,7 +535,7 @@ class ER_FM<bits<6> funct>
// Enable/disable interrupt instruction format <Cop0|MFMC0|rt|12|0|sc|0|0>
//===----------------------------------------------------------------------===//
-class EI_FM<bits<1> sc>
+class EI_FM<bits<1> sc> : StdArch
{
bits<32> Inst;
bits<5> rt;
OpenPOWER on IntegriCloud