diff options
author | David Edelsohn <edelsohn@gnu.org> | 2006-02-04 14:18:17 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2006-02-04 09:18:17 -0500 |
commit | 337bde9139c0a7e535acc4a93cb65cdf8e05e222 (patch) | |
tree | c57890415a0f81094e9f8f91cff77e7ddada331e | |
parent | eef5c0ca8dae527ead97eee8de461c94cc23fd7a (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 12 |
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; } |