From: segher Date: Wed, 5 Dec 2018 01:04:11 +0000 (+0000) Subject: rs6000: Fix AIX aggregate passing fix X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78712167f63efec8e4fc2c974a3b87b319d91225;p=thirdparty%2Fgcc.git rs6000: Fix AIX aggregate passing fix 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266811 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ce915527e10a..87ce4c638034 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-12-05 Segher Boessenkool + + * 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 PR rtl-optimization/88317 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 4f12558b0a87..91e012176e6e 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -11990,7 +11990,7 @@ rs6000_function_arg (cumulative_args_t cum_v, machine_mode mode, 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; @@ -12127,7 +12127,7 @@ rs6000_arg_partial_bytes (cumulative_args_t cum_v, machine_mode mode, 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;