2009-09-16 Jakub Jelinek * 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