This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]