This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][ARM] PR78255: wrong code generation for indirect sibling calls


On 10/11/16 14:54, Andre Vieira (lists) wrote:
> Hi,
> 
> As reported in PR78255 there is currently an issue with indirect sibling
> calls in ARM when the address of the sibling call is loaded into 'r3'
> and that same register is chosen to align the stack.  See the report for
> further information.
> 
> As I mentioned in the bugzilla ticket I am not sure this is the right
> approach, though it works... Bootstrapped on ARM and no regressions.
> 
> Do you think this is OK? Another solution would be to make sure that
> 'arm_get_frame_offsets' recalculates offsets after we know that the call
> is going to be indirect, i.e. after we know the address is going to be
> loaded into a register, but I do not know what a sane way would be to
> ensure this.
> 
> Regards,
> Andre
> 
> gcc/ChangeLog
> 2016-11-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
> 
>         * config/arm/arm.md (sibcall_internal): Add 'use' to pattern.
>         (sibcall_value_internal): Likewise.
>         (sibcall_insn): Likewise.
>         (sibcall_value_insn): Likewise.
> 
> 
> gcc/testsuite/ChangeLog
> 2016-11-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
> 
>         * gcc.target/arm/pr78255.c: New.
> 

I was looking at the bootstrap results of the wrong patch. This one
seems to break ARM bootstrap, I am looking into it...

Cheers,
Andre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]