+2018-12-04 David Edelsohn <dje.gcc@gmail.com>
+
+ PR target/61976
+ * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates
+ in FPRs on AIX.
+ (rs6000_arg_partial_bytes): Same.
+
2018-12-04 Vladimir Makarov <vmakarov@redhat.com>
PR target/88282
if (elt_mode == TDmode && (cum->fregno % 2) == 1)
cum->fregno++;
- if (USE_FP_FOR_ARG_P (cum, elt_mode))
+ if (USE_FP_FOR_ARG_P (cum, elt_mode)
+ && !(TARGET_AIX && AGGREGATE_TYPE_P (type)))
{
rtx rvec[GP_ARG_NUM_REG + AGGR_ARG_NUM_REG + 1];
rtx r, off;
align_words = rs6000_parm_start (mode, type, cum->words);
- if (USE_FP_FOR_ARG_P (cum, elt_mode))
+ if (USE_FP_FOR_ARG_P (cum, elt_mode)
+ && !(TARGET_AIX && AGGREGATE_TYPE_P (type)))
{
unsigned long n_fpreg = (GET_MODE_SIZE (elt_mode) + 7) >> 3;