aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2006-02-04 14:18:17 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2006-02-04 09:18:17 -0500
commit337bde9139c0a7e535acc4a93cb65cdf8e05e222 (patch)
treec57890415a0f81094e9f8f91cff77e7ddada331e /gcc
parenteef5c0ca8dae527ead97eee8de461c94cc23fd7a (diff)
downloadgcc-337bde9139c0a7e535acc4a93cb65cdf8e05e222.zip
gcc-337bde9139c0a7e535acc4a93cb65cdf8e05e222.tar.gz
gcc-337bde9139c0a7e535acc4a93cb65cdf8e05e222.tar.bz2
rs6000.c (rs6000_mangle_fundamental_type): Mangle IBM extended float format long double as "g" on powerpc*-linux.
* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle IBM extended float format long double as "g" on powerpc*-linux. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r110589
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c12
2 files changed, 16 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 75b786b..23e9d84 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-02-04 David Edelsohn <edelsohn@gnu.org>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * 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 <dave.anglin@nrc-cnrc.gc.ca>
PR target/25926
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index bb5e635..c963c64 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;
}