From f3166bddc6acd9b4aaddef5c4e2a8ce78410ef46 Mon Sep 17 00:00:00 2001 From: dje Date: Sat, 4 Feb 2006 14:18:17 +0000 Subject: [PATCH] * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle IBM extended float format long double as "g" on powerpc*-linux. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110589 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 75b786bb25a..23e9d84a607 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-02-04 David Edelsohn + Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle + IBM extended float format long double as "g" on powerpc*-linux. + 2006-02-03 John David Anglin PR target/25926 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index bb5e6359d4d..c963c641633 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1,7 +1,7 @@ /* Subroutines used for code generation on IBM RS/6000. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, - Inc. + 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. @@ -17410,6 +17410,14 @@ rs6000_mangle_fundamental_type (tree type) if (type == pixel_type_node) return "u7__pixel"; if (type == bool_int_type_node) return "U6__booli"; + /* Mangle IBM extended float long double as `g' (__float128) on + powerpc*-linux where long-double-64 previously was the default. */ + if (TYPE_MAIN_VARIANT (type) == long_double_type_node + && TARGET_ELF + && TARGET_LONG_DOUBLE_128 + && !TARGET_IEEEQUAD) + return "g"; + /* For all other types, use normal C++ mangling. */ return NULL; } -- 2.11.4.GIT