summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MipsSubtarget.cpp
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2014-05-09 09:46:21 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2014-05-09 09:46:21 +0000
commit32650944eb3ba5ba57db50bb7a98d1c89396f4f3 (patch)
treeed50574986911367232efd4cb7fb96f8201a0d40 /lib/Target/Mips/MipsSubtarget.cpp
parent6b68224e9ab550807265bb9f45dcd9611c6fc539 (diff)
downloadllvm-32650944eb3ba5ba57db50bb7a98d1c89396f4f3.tar.gz
llvm-32650944eb3ba5ba57db50bb7a98d1c89396f4f3.tar.bz2
llvm-32650944eb3ba5ba57db50bb7a98d1c89396f4f3.tar.xz
[mips][mips64r6] Add experimental support for MIPS32r6 and MIPS64r6
Summary: Adds MIPS32r6/MIPS64r6 and checks the compatibility requirements for these processors. I've also included comments to describe removed and re-encoded instructions, along with placeholder def's for the new instructions but there are no functional changes to codegen at this point. Reviewers: jkolek, vmedic Reviewed By: vmedic Differential Revision: http://reviews.llvm.org/D3622 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208399 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MipsSubtarget.cpp')
-rw-r--r--lib/Target/Mips/MipsSubtarget.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Target/Mips/MipsSubtarget.cpp b/lib/Target/Mips/MipsSubtarget.cpp
index 6675ad42aa..7fc8d63ae4 100644
--- a/lib/Target/Mips/MipsSubtarget.cpp
+++ b/lib/Target/Mips/MipsSubtarget.cpp
@@ -137,6 +137,15 @@ MipsSubtarget::MipsSubtarget(const std::string &TT, const std::string &CPU,
"See -mattr=+fp64.",
false);
+ if (hasMips32r6()) {
+ StringRef ISA = hasMips64r6() ? "MIPS64r6" : "MIPS32r6";
+
+ assert(isFP64bit());
+ assert(isNaN2008());
+ if (hasDSP())
+ report_fatal_error(ISA + " is not compatible with the DSP ASE", false);
+ }
+
// Is the target system Linux ?
if (TT.find("linux") == std::string::npos)
IsLinux = false;