On Fri, Sep 11, 2015 at 06:15:23PM +0100, Andre Vieira wrote: > Conditional branches have a maximum range of [-1048576, 1048572]. Any > destination further away can not be reached by these. > To be able to have conditional branches in very large functions, we > invert the condition and change the destination to jump over an > unconditional branch to the original, far away, destination. > > This patch backports the fix from trunk to the gcc-5-branch. > The original patch is at: > https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01493.html
OK. Thanks, James > gcc/ChangeLog: > 2015-09-09 Andre Vieira <andre.simoesdiasvie...@arm.com> > > Backport from mainline: > 2015-08-27 Ramana Radhakrishnan <ramana.radhakrish...@arm.com> > Andre Vieira <andre.simoesdiasvie...@arm.com> > > * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB. > (*cb<optab><mode>1): Likewise. > (*tb<optab><mode>1): Likewise. > (*cb<optab><mode>1): Likewise. > * config/aarch64/iterators.md (inv_cb): New code attribute. > (inv_tb): Likewise. > * config/aarch64/aarch64.c (aarch64_gen_far_branch): New. > * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New. > > > gcc/testsuite/ChangeLog: > 2015-09-09 Andre Vieira <andre.simoesdiasvie...@arm.com> > > Backport from mainline: > 2015-08-27 Andre Vieira <andre.simoesdiasvie...@arm.com> > > * gcc.target/aarch64/long_branch_1.c: New test.