diff options
author | Michael Meissner <meissner@linux.ibm.com> | 2018-10-23 21:59:51 +0000 |
---|---|---|
committer | Michael Meissner <meissner@linux.ibm.com> | 2018-10-23 21:59:51 +0000 |
commit | 11784be231f16f3d017a8e69ed89501d927d1c0e (patch) | |
tree | c1b8d0d743467ef8792dd9387d53773e582e83b3 | |
parent | 7703564f11636849473287d2f8529d958108e0c2 (diff) |
Segher changesibm/ieee
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ibm/ieee@265443 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog.meissner | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner index a62aa43fa21..95be06dece2 100644 --- a/gcc/ChangeLog.meissner +++ b/gcc/ChangeLog.meissner @@ -1,5 +1,10 @@ 2018-10-23 Michael Meissner <meissner@linux.ibm.com> + * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): + Segher changes. + +2018-10-23 Michael Meissner <meissner@linux.ibm.com> + * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Only change the name if the long double default changed. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 01da3db0b30..a5da539ce18 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -38986,14 +38986,14 @@ rs6000_mangle_decl_assembler_name (tree decl, tree id) size_t len = IDENTIFIER_LENGTH (id); const char *name = IDENTIFIER_POINTER (id); - if (name[len-1] == 'l') + if (name[len - 1] == 'l') { bool has_long_double_p = false; tree type = TREE_TYPE (decl); machine_mode ret_mode = TYPE_MODE (type); - /* See if the function returns long double or long double - complex. */ + /* See if the function returns a IEEE 128-bit floating point type or + complex type. */ if (ret_mode == TFmode || ret_mode == TCmode) has_long_double_p = true; else @@ -39001,8 +39001,8 @@ rs6000_mangle_decl_assembler_name (tree decl, tree id) function_args_iterator args_iter; tree arg; - /* See if we have a long double or long double complex - argument. */ + /* See if the function passes a IEEE 128-bit floating point type + or complex type. */ FOREACH_FUNCTION_ARGS (type, arg, args_iter) { machine_mode arg_mode = TYPE_MODE (arg); @@ -39018,7 +39018,7 @@ rs6000_mangle_decl_assembler_name (tree decl, tree id) if (has_long_double_p) { char *name2 = (char *) alloca (len + 4); - memcpy (name2, name, len-1); + memcpy (name2, name, len - 1); strcpy (name2 + len - 1, "f128"); id = get_identifier (name2); } |