Allow passing arrays in registers on AArch64

Michael Hudson-Doyle michael.hudson@linaro.org
Tue Feb 18 22:08:00 GMT 2014


Jakub Jelinek <jakub@redhat.com> writes:

> On Tue, Feb 11, 2014 at 02:51:08PM +0000, Marcus Shawcroft wrote:
>> On 6 February 2014 22:51, Michael Hudson-Doyle
>> <michael.hudson@canonical.com> wrote:
>> 
>> > diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
>> > index 16c51a8..958c667 100644
>> > --- a/gcc/config/aarch64/aarch64.c
>> > +++ b/gcc/config/aarch64/aarch64.c
>> > @@ -1187,14 +1187,10 @@ aarch64_pass_by_reference (cumulative_args_t pcum ATTRIBUTE_UNUSED,
>> >    size = (mode == BLKmode && type)
>> >      ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode);
>> >
>> > -  if (type)
>> > +  /* Aggregates are passed by reference based on their size.  */
>> > +  if (type && AGGREGATE_TYPE_P (type))
>> >      {
>> > -      /* Arrays always passed by reference.  */
>> > -      if (TREE_CODE (type) == ARRAY_TYPE)
>> > -       return true;
>> > -      /* Other aggregates based on their size.  */
>> > -      if (AGGREGATE_TYPE_P (type))
>> > -       size = int_size_in_bytes (type);
>> > +      size = int_size_in_bytes (type);
>> >      }
>> >
>> >    /* Variable sized arguments are always returned by reference.  */
>> 
>> This version of the patch looks fine.  Since this is a bug I think it
>> should be committed now in stage 4.    This is OK if release manager
>> agrees.
>
> Ok.

So, um, can someone commit this please?

Cheers,
mwh



More information about the Gcc-patches mailing list