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