Define __mips64 / __mips64__ macros for MIPS 64-bit targets.
The patch suggested by Brad Smith.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162858 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 11509aa..1e0e3e3 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -3977,6 +3977,9 @@
                                 MacroBuilder &Builder) const {
     MipsTargetInfoBase::getTargetDefines(Opts, Builder);
 
+    Builder.defineMacro("__mips64");
+    Builder.defineMacro("__mips64__");
+
     if (ABI == "n32") {
       Builder.defineMacro("__mips_n32");
       Builder.defineMacro("_ABIN32", "2");
diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c
index 66b91aa..eaf08ca 100644
--- a/test/Preprocessor/init.c
+++ b/test/Preprocessor/init.c
@@ -791,6 +791,8 @@
 // MIPS64BE:#define __clang__ 1
 // MIPS64BE:#define __llvm__ 1
 // MIPS64BE:#define __mips 1
+// MIPS64BE:#define __mips64 1
+// MIPS64BE:#define __mips64__ 1
 // MIPS64BE:#define __mips__ 1
 // MIPS64BE:#define __mips_hard_float 1
 // MIPS64BE:#define __mips_n64 1
@@ -904,6 +906,8 @@
 // MIPS64EL:#define __clang__ 1
 // MIPS64EL:#define __llvm__ 1
 // MIPS64EL:#define __mips 1
+// MIPS64EL:#define __mips64 1
+// MIPS64EL:#define __mips64__ 1
 // MIPS64EL:#define __mips__ 1
 // MIPS64EL:#define __mips_hard_float 1
 // MIPS64EL:#define __mips_n64 1