public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/meissner/heads/work025)] Restore patch.
@ 2020-11-11 8:27 Michael Meissner
0 siblings, 0 replies; only message in thread
From: Michael Meissner @ 2020-11-11 8:27 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:e97acd0cab5a823c2d4ee2ad8950393f96a8b7da
commit e97acd0cab5a823c2d4ee2ad8950393f96a8b7da
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Wed Nov 11 03:26:52 2020 -0500
Restore patch.
gcc/
2020-11-10 Michael Meissner <meissner@linux.ibm.com>
PR gcc/97791
* config/rs6000/rs6000-call.c (init_cumulative_args): Only set
that long double was returned if the type is actually long
double.
(rs6000_function_arg_advance_1): Only set that long double was
passed if the type is actually long double.
* config/rs6000/rs6000.c (rs6000_emit_move): Delete code that sets
whether long double was passed based on the modes used in moves.
Diff:
---
gcc/config/rs6000/rs6000-call.c | 13 ++++---------
gcc/config/rs6000/rs6000.c | 17 -----------------
2 files changed, 4 insertions(+), 26 deletions(-)
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 3bd89a79bad..8294e22fb85 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -6539,11 +6539,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
@@ -7001,10 +6998,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
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index a76cda09407..6edd17a0b69 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -10081,23 +10081,6 @@ rs6000_emit_move (rtx dest, rtx source, machine_mode mode)
&& GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT)
gcc_unreachable ();
-#ifdef HAVE_AS_GNU_ATTRIBUTE
- /* If we use a long double type, set the flags in .gnu_attribute that say
- what the long double type is. This is to allow the linker's warning
- message for the wrong long double to be useful, even if the function does
- not do a call (for example, doing a 128-bit add on power9 if the long
- double type is IEEE 128-bit. Do not set this if __ibm128 or __floa128 are
- used if they aren't the default long dobule type. */
- if (rs6000_gnu_attr && (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE || TARGET_64BIT))
- {
- if (TARGET_LONG_DOUBLE_128 && (mode == TFmode || mode == TCmode))
- rs6000_passes_float = rs6000_passes_long_double = true;
-
- else if (!TARGET_LONG_DOUBLE_128 && (mode == DFmode || mode == DCmode))
- rs6000_passes_float = rs6000_passes_long_double = true;
- }
-#endif
-
/* See if we need to special case SImode/SFmode SUBREG moves. */
if ((mode == SImode || mode == SFmode) && SUBREG_P (source)
&& rs6000_emit_move_si_sf_subreg (dest, source, mode))
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-11-11 8:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-11 8:27 [gcc(refs/users/meissner/heads/work025)] Restore patch Michael Meissner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).