[mips] Removal of microMIPS64R6
authorAleksandar Beserminji <Aleksandar.Beserminji@mips.com>
Mon, 11 Dec 2017 11:29:17 +0000 (11:29 +0000)
committerAleksandar Beserminji <Aleksandar.Beserminji@mips.com>
Mon, 11 Dec 2017 11:29:17 +0000 (11:29 +0000)
microMIPS64R6 is removed from backend, and therefore frontend
will show an error when target is microMIPS64R6.

This is Clang part of patch.

Differential Revision: https://reviews.llvm.org/D35624

llvm-svn: 320351

clang/include/clang/Basic/DiagnosticCommonKinds.td
clang/lib/Basic/Targets/Mips.cpp

index 98fd3c4d57ac0ba63bf2aa36f29fbb418aa1cb21..82ca27b7345e3387b3e9e5d09c9db997e8ac6ed0 100644 (file)
@@ -185,6 +185,8 @@ def note_invalid_subexpr_in_const_expr : Note<
 def err_target_unknown_triple : Error<
   "unknown target triple '%0', please use -triple or -arch">;
 def err_target_unknown_cpu : Error<"unknown target CPU '%0'">;
+def err_target_unsupported_cpu_for_micromips : Error<
+  "micromips is not supported for target CPU '%0'">;
 def err_target_unknown_abi : Error<"unknown target ABI '%0'">;
 def err_target_unsupported_abi : Error<"ABI '%0' is not supported on CPU '%1'">;
 def err_target_unsupported_abi_for_triple : Error<
index 3eb39b377be1c167dd7126e2c6a831c689f1321b..55635058eff3f1a04448897c0be028a38c026be5 100644 (file)
@@ -206,6 +206,13 @@ ArrayRef<Builtin::Info> MipsTargetInfo::getTargetBuiltins() const {
 }
 
 bool MipsTargetInfo::validateTarget(DiagnosticsEngine &Diags) const {
+  // microMIPS64R6 backend is removed
+  if ((getTriple().getArch() == llvm::Triple::mips64 ||
+       getTriple().getArch() == llvm::Triple::mips64el) &&
+       IsMicromips && (ABI == "n32" || ABI == "n64")) {
+    Diags.Report(diag::err_target_unsupported_cpu_for_micromips) << CPU;
+    return false;
+  }
   // FIXME: It's valid to use O32 on a 64-bit CPU but the backend can't handle
   //        this yet. It's better to fail here than on the backend assertion.
   if (processorSupportsGPR64() && ABI == "o32") {