]> gcc.gnu.org Git - gcc.git/commitdiff
PowerPC: Only set gnu attribute #4 if explicit long double.
authorMichael Meissner <meissner@linux.ibm.com>
Tue, 10 Nov 2020 13:30:55 +0000 (08:30 -0500)
committerMichael Meissner <meissner@linux.ibm.com>
Tue, 10 Nov 2020 13:30:55 +0000 (08:30 -0500)
gcc/
2020-11-10  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/rs6000-call.c (init_cumulative_args): Only set gnu
attribute #4 if the return type is long double, and not an
explicit __float128 or __ibm128 type.
(rs6000_function_arg_advance_1): Only set gnu attribute #4 if the
argument is long double and not an explicit __float128 or __ibm128
type.

gcc/config/rs6000/rs6000-call.c

index 61a104a19e192a6f4be8d095a8e42f66ace8df4f..1c3afbda69e2c2ea33fe174aa18d9b092b79ef0f 100644 (file)
@@ -6563,11 +6563,8 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype,
            {
              rs6000_passes_float = true;
              if ((HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE || TARGET_64BIT)
-                 && (FLOAT128_IBM_P (return_mode)
-                     || FLOAT128_IEEE_P (return_mode)
-                     || (return_type != NULL
-                         && (TYPE_MAIN_VARIANT (return_type)
-                             == long_double_type_node))))
+                 && return_type != NULL
+                 && TYPE_MAIN_VARIANT (return_type) == long_double_type_node)
                rs6000_passes_long_double = true;
 
              /* Note if we passed or return a IEEE 128-bit type.  We changed
@@ -7025,10 +7022,8 @@ rs6000_function_arg_advance_1 (CUMULATIVE_ARGS *cum, machine_mode mode,
        {
          rs6000_passes_float = true;
          if ((HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE || TARGET_64BIT)
-             && (FLOAT128_IBM_P (mode)
-                 || FLOAT128_IEEE_P (mode)
-                 || (type != NULL
-                     && TYPE_MAIN_VARIANT (type) == long_double_type_node)))
+             && type != NULL
+             && TYPE_MAIN_VARIANT (type) == long_double_type_node)
            rs6000_passes_long_double = true;
 
          /* Note if we passed or return a IEEE 128-bit type.  We changed the
This page took 0.091961 seconds and 5 git commands to generate.