http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57865
--- Comment #3 from Sebastian Huber <sebastian.hu...@embedded-brains.de> --- (In reply to Alan Modra from comment #2) > My guess is that it's this change > > -#define FIRST_SAVED_GP_REGNO 13 > +#define FIRST_SAVED_GP_REGNO (FIXED_R13 ? 14 : 13) > > messing with ool_adjust. I used this on the current 4.8 head: diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 8a36084..d075915 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -952,7 +952,7 @@ extern unsigned rs6000_pointer_size; #define FIRST_SAVED_ALTIVEC_REGNO (FIRST_ALTIVEC_REGNO+20) #define FIRST_SAVED_FP_REGNO (14+32) -#define FIRST_SAVED_GP_REGNO (FIXED_R13 ? 14 : 13) +#define FIRST_SAVED_GP_REGNO 13 /* List the order in which to allocate registers. Each register must be listed once, even those in FIXED_REGISTERS. This solves the problem above. I don't know the other impact of the change.