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