This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] rs6000 long double mangling
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: jakub at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 03 Feb 2006 17:22:02 -0500
- Subject: [PATCH] rs6000 long double mangling
This patch adds the long double mangling to rs6000 port. I
believe that we want to do this whenever IBM extended float format is
used, except on Darwin, whose ABI is not changing.
This patch includes changing the mangling on SVR4 when IBM long
double compatibility is requested. Because default SVR4 long double ABI
is not changing and 128 bit long double is not being enabled by default,
the patch does not change the mangling in that mode.
Is this what you expect, Jakub?
Thanks, David
* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
IBM extended float format long double as "g".
Index: rs6000.c
===================================================================
*** rs6000.c (revision 110536)
--- rs6000.c (working copy)
*************** rs6000_mangle_fundamental_type (tree typ
*** 17409,17414 ****
--- 17409,17420 ----
if (type == bool_short_type_node) return "U6__bools";
if (type == pixel_type_node) return "u7__pixel";
if (type == bool_int_type_node) return "U6__booli";
+
+ if (TYPE_MAIN_VARIANT (type) == long_double_type_node
+ && TARGET_LONG_DOUBLE_128
+ && !TARGET_IEEEQUAD
+ && DEFAULT_ABI != ABI_DARWIN)
+ return "g";
/* For all other types, use normal C++ mangling. */
return NULL;