This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
darwin breakage
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: Geoff Keating <geoffk at geoffk dot org>
- Cc: Andrew Pinski <pinskia at physics dot uc dot edu>, gcc-patches at gcc dot gnu dot org
- Date: Sat, 25 Dec 2004 01:27:44 +1030
- Subject: darwin breakage
Hi Geoff,
Andrew Pinski tells me that my poking at legitimate_lo_sum_address_p has
caused regressions on Darwin. :-(
I reckon this code in rs6000_legitimize_reload_address
/* Don't do this for TFmode, since the result isn't offsettable. */
&& mode != TFmode)
should be extended to exclude DImode too, but I'm just guessing based on
rtl he's shown on irc. If that doesn't cure the problem, about all I
can suggest is this:
Index: gcc/config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.768
diff -u -p -r1.768 rs6000.c
--- gcc/config/rs6000/rs6000.c 24 Dec 2004 01:51:04 -0000 1.768
+++ gcc/config/rs6000/rs6000.c 24 Dec 2004 14:39:34 -0000
@@ -3326,6 +3326,7 @@ legitimate_lo_sum_address_p (enum machin
return false;
if (GET_MODE_BITSIZE (mode) > 64
|| (GET_MODE_BITSIZE (mode) > 32 && !TARGET_POWERPC64
+ && DEFAULT_ABI != ABI_DARWIN
&& !(TARGET_HARD_FLOAT && TARGET_FPRS && mode == DFmode)))
return false;
Which is assuming that you want to allow powerpc-darwin to generate what
may be risky lo_sum addresses.
--
Alan Modra
IBM OzLabs - Linux Technology Centre