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.


Reply via email to