Merging r243645:
------------------------------------------------------------------------
r243645 | dsanders | 2015-07-30 17:11:04 +0100 (Thu, 30 Jul 2015) | 11 lines

[libcxxabi][mips] Correct float_data::mangled_size for all ABI's.

Summary:
Patch by Nitesh Jain and Jaydeep Patil with a small revision to use ABIs rather
than Architecture Revisions (which currently imply particular ABIs).

Fixes test_demangle.pass.cpp (PR24149).

Subscribers: mclow.lists, jaydeep, nitesh.jain, hans, cfe-commits

Differential Revision: http://reviews.llvm.org/D11483
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/branches/release_37@243654 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/src/cxa_demangle.cpp b/src/cxa_demangle.cpp
index d80843e..f2878f3 100644
--- a/src/cxa_demangle.cpp
+++ b/src/cxa_demangle.cpp
@@ -156,7 +156,9 @@
 template <>
 struct float_data<long double>
 {
-#if defined(__arm__)
+#if defined(__mips__) && defined(__mips_n64)
+    static const size_t mangled_size = 32;
+#elif defined(__arm__) || defined(__mips__)
     static const size_t mangled_size = 16;
 #else
     static const size_t mangled_size = 20;  // May need to be adjusted to 16 or 24 on other platforms