[gcc(refs/users/meissner/heads/work095)] Mangle __ibm128 into u8__ibm128.
Michael Meissner
meissner@gcc.gnu.org
Fri Jul 29 19:29:37 GMT 2022
https://gcc.gnu.org/g:455317497e400a6dd14df6c4518d796f7dff7b43
commit 455317497e400a6dd14df6c4518d796f7dff7b43
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Fri Jul 29 15:29:00 2022 -0400
Mangle __ibm128 into u8__ibm128.
This patch changes the mangling of __ibm128 when long double uses the IBM
128-bit encoding. This change is necessary due to the change where __ibm128 and
long double no longer share the same internal type node.
2022-07-29 Michael Meissner <meissner@linux.ibm.com>
gcc/
PR target/85657
* config/rs6000/rs600.cc (rs6000_mangle_type): Mangle __ibm128 into
"u8__ibm128".
Diff:
---
gcc/config/rs6000/rs6000.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index cf1b1816ebd..6f73c040035 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -20195,6 +20195,12 @@ rs6000_mangle_type (const_tree type)
if (type == bool_int_type_node) return "U6__booli";
if (type == bool_long_long_type_node) return "U6__boolx";
+ /* If long double uses the IBM 128-bit extended format, we need to
+ distinguish between __ibm128 and long double. */
+ if (type == ibm128_float_type_node && TARGET_LONG_DOUBLE_128
+ && !TARGET_IEEEQUAD)
+ return "u8__ibm128";
+
if (SCALAR_FLOAT_TYPE_P (type) && FLOAT128_IBM_P (TYPE_MODE (type)))
return "g";
if (SCALAR_FLOAT_TYPE_P (type) && FLOAT128_IEEE_P (TYPE_MODE (type)))
More information about the Gcc-cvs
mailing list