Blob Blame History Raw
2009-09-16  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Disable
	out of line gpr/fpr saving for -m64 -Os -mcall-aixdesc.

--- gcc/config/rs6000/sysv4.h.jj	2009-09-16 14:46:19.000000000 +0200
+++ gcc/config/rs6000/sysv4.h	2009-09-16 14:46:19.000000000 +0200
@@ -273,12 +273,14 @@ do {									\
 /* Define cutoff for using external functions to save floating point.
    When optimizing for size, use external functions when profitable.  */
 #define FP_SAVE_INLINE(FIRST_REG) (optimize_size			\
+				   && (!TARGET_64BIT || !DOT_SYMBOLS)	\
 				   ? ((FIRST_REG) == 62			\
 				      || (FIRST_REG) == 63)		\
 				   : (FIRST_REG) < 64)
 /* And similarly for general purpose registers.  */
-#define GP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 32	\
-				   && !optimize_size)
+#define GP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 32			\
+				   && (!optimize_size			\
+				        || (TARGET_64BIT && DOT_SYMBOLS)))
 
 /* Put jump tables in read-only memory, rather than in .text.  */
 #define JUMP_TABLES_IN_TEXT_SECTION 0