Ping.

On 11/09/15 18:15, 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

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