aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorStam Markianos-Wright <stam.markianos-wright@arm.com>2020-02-03 10:25:46 +0000
committerStam Markianos-Wright <stam.markianos-wright@arm.com>2020-02-03 10:30:59 +0000
commit44f77a6dea2f312ee1743f3dde465c1b8453ee13 (patch)
tree85bdcc4d04784d2b0074d00a4a8bba04ff0d3af2 /gcc/go
parente464fc903506b75bef90374ab520b52df317a00e (diff)
downloadgcc-44f77a6dea2f312ee1743f3dde465c1b8453ee13.zip
gcc-44f77a6dea2f312ee1743f3dde465c1b8453ee13.tar.gz
gcc-44f77a6dea2f312ee1743f3dde465c1b8453ee13.tar.bz2
This patch is for PR target/91816
This is a patch for an issue where the compiler was generating a conditional branch in Thumb2, which was too far for b{cond} to handle. This was originally reported at binutils: https://sourceware.org/bugzilla/show_bug.cgi?id=24991 And then raised for GCC: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91816 As can be seen here: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cihfddaf.html the range of a 32-bit Thumb B{cond} is +/-1MB. This is now checked for in arm.md and an unconditional branch is generated if the jump would be greater than 1MB. gcc/ChangeLog 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com> PR target/91816 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype. * config/arm/arm.c (arm_gen_far_branch): New function arm_gen_far_branch. * config/arm/arm.md: Update b<cond> for Thumb2 range checks. gcc/testsuite/ChangeLog 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com> PR target/91816 * gcc.target/arm/pr91816.c: New test.
Diffstat (limited to 'gcc/go')
0 files changed, 0 insertions, 0 deletions