aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <Michael Meissner meissner@linux.ibm.com>2020-05-05 12:28:48 -0400
committerMichael Meissner <Michael Meissner meissner@linux.ibm.com>2020-05-05 12:28:48 -0400
commitf1d82734ecfc3fc9913d598871192fd0f3fff536 (patch)
treeeed7aeda9aef7eff005b055578b949a962da912f
parent438085cc66ed5801ea36c1027bbd624e86d8310f (diff)
downloadgcc-f1d82734ecfc3fc9913d598871192fd0f3fff536.zip
gcc-f1d82734ecfc3fc9913d598871192fd0f3fff536.tar.gz
gcc-f1d82734ecfc3fc9913d598871192fd0f3fff536.tar.bz2
Patch ieee128-lib-patch001b
-rw-r--r--gcc/ChangeLog.meissner8
-rw-r--r--gcc/config/rs6000/rs6000.c8
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 98683f4..332f5ea 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,11 @@
+2020-05-05 Michael Meissner <meissner@linux.ibm.com>
+
+ (ieee128-lib-patch001b)
+ PR target/94630
+ * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Do
+ the mapping for <name>l to <name>f128 when the long double default
+ is IEEE 128-bit.
+
2020-05-05 Michael Meissner <meissner@linux.ibm.com>
Clone branch
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 355aea8..abc1b89 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -26326,13 +26326,15 @@ rs6000_globalize_decl_name (FILE * stream, tree decl)
library before you can switch the real*16 type at compile time.
We use the TARGET_MANGLE_DECL_ASSEMBLER_NAME hook to change this name. We
- only do this if the default is that long double is IBM extended double, and
- the user asked for IEEE 128-bit. */
+ only do this transformation if the __float128 type is enabled. This
+ prevents us from doing the transformation on older 32-bit parts that might
+ have enabled using IEEE 128-bit floating point as the default long double
+ type. */
static tree
rs6000_mangle_decl_assembler_name (tree decl, tree id)
{
- if (!TARGET_IEEEQUAD_DEFAULT && TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128
+ if (TARGET_FLOAT128_TYPE && TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128
&& TREE_CODE (decl) == FUNCTION_DECL && DECL_IS_BUILTIN (decl) )
{
size_t len = IDENTIFIER_LENGTH (id);