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.simoesdiasvie...@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.simoesdiasvie...@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