summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MipsRegisterInfo.td
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2013-08-28 10:26:24 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2013-08-28 10:26:24 +0000
commita6c3a4ee76ef8464d3c83472e15af521ade7eeb4 (patch)
tree6d7144112fadae9faaac8e994ad687bddc7a582d /lib/Target/Mips/MipsRegisterInfo.td
parentf00539cc5a5e66ce6b7ce3779b00fd381e2d2dee (diff)
downloadllvm-a6c3a4ee76ef8464d3c83472e15af521ade7eeb4.tar.gz
llvm-a6c3a4ee76ef8464d3c83472e15af521ade7eeb4.tar.bz2
llvm-a6c3a4ee76ef8464d3c83472e15af521ade7eeb4.tar.xz
[mips][msa] Added cfcmsa, and ctcmsa
The MSA control registers have been added as reserved registers, and are only used via ISD::Copy(To|From)Reg. The intrinsics are lowered into these nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189468 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MipsRegisterInfo.td')
-rw-r--r--lib/Target/Mips/MipsRegisterInfo.td13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Target/Mips/MipsRegisterInfo.td b/lib/Target/Mips/MipsRegisterInfo.td
index 22c489090d..cef5ebfd3e 100644
--- a/lib/Target/Mips/MipsRegisterInfo.td
+++ b/lib/Target/Mips/MipsRegisterInfo.td
@@ -231,6 +231,16 @@ let Namespace = "Mips" in {
def DSPOutFlag : RegisterWithSubRegs<"", [DSPOutFlag16_19, DSPOutFlag20,
DSPOutFlag21, DSPOutFlag22,
DSPOutFlag23]>;
+
+ // MSA-ASE control registers.
+ def MSAIR : Register<"0">;
+ def MSACSR : Register<"1">;
+ def MSAAccess : Register<"2">;
+ def MSASave : Register<"3">;
+ def MSAModify : Register<"4">;
+ def MSARequest : Register<"5">;
+ def MSAMap : Register<"6">;
+ def MSAUnmap : Register<"7">;
}
//===----------------------------------------------------------------------===//
@@ -329,6 +339,9 @@ def MSA128W: RegisterClass<"Mips", [v4i32, v4f32], 128,
def MSA128D: RegisterClass<"Mips", [v2i64, v2f64], 128,
(sequence "W%u", 0, 31)>;
+def MSACtrl: RegisterClass<"Mips", [i32], 32, (add
+ MSAIR, MSACSR, MSAAccess, MSASave, MSAModify, MSARequest, MSAMap, MSAUnmap)>;
+
// Hi/Lo Registers
def LO32 : RegisterClass<"Mips", [i32], 32, (add LO0)>;
def HI32 : RegisterClass<"Mips", [i32], 32, (add HI0)>;