David's fix for the AIX aggregate passing from yesterday unfortunately
also triggers on powerpc64-linux. This fixes it.
* config/rs6000/rs6000.c (rs6000_function_arg): Only do the special
aggregate handling on actual AIX, not on somewhat similar systems.
(rs6000_arg_partial_bytes): Ditto.
From-SVN: r266811
+2018-12-05 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.c (rs6000_function_arg): Only do the special
+ aggregate handling on actual AIX, not on somewhat similar systems.
+ (rs6000_arg_partial_bytes): Ditto.
+
2018-12-04 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/88317
cum->fregno++;
if (USE_FP_FOR_ARG_P (cum, elt_mode)
- && !(TARGET_AIX && AGGREGATE_TYPE_P (type)))
+ && !(TARGET_AIX && !TARGET_ELF && 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)
- && !(TARGET_AIX && AGGREGATE_TYPE_P (type)))
+ && !(TARGET_AIX && !TARGET_ELF && AGGREGATE_TYPE_P (type)))
{
unsigned long n_fpreg = (GET_MODE_SIZE (elt_mode) + 7) >> 3;