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. From-SVN: r266811
This commit is contained in:
parent
561094eeae
commit
4526e5eccb
@ -1,3 +1,9 @@
|
||||
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
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user