On Wed, Nov 23, 2016 at 12:13:23PM -0600, Peter Bergner wrote:
> --- gcc/config/rs6000/rs6000.h (revision 241976)
> +++ gcc/config/rs6000/rs6000.h (working copy)
> @@ -1279,9 +1279,11 @@ enum data_align { align_abi, align_opt,
> enough space to account for vectors in FP regs. However, TFmode/TDmode
> should not use VSX instructions to do a caller save. */
> #define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE)
> \
> - (TARGET_VSX
> \
> - && ((MODE) == VOIDmode || ALTIVEC_OR_VSX_VECTOR_MODE (MODE))
> \
> - && FP_REGNO_P (REGNO) \
> + (NREGS <= rs6000_hard_regno_nregs[MODE][REGNO] \
> + ? MODE \
Please put parens around NREGS and that last MODE.
> --- gcc/testsuite/gcc.target/powerpc/pr78458.c (revision 0)
> +++ gcc/testsuite/gcc.target/powerpc/pr78458.c (working copy)
> @@ -0,0 +1,15 @@
> +/* { dg-do compile } */
> +/* { dg-options "-mcpu=8548 -mspe -mabi=spe -mlra" } */
> +/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" }
> } */
You don't need the default arguments, FWIW.
Okay for trunk. Thanks!
Segher