This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]