diff options
author | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2015-08-27 10:08:54 +0000 |
---|---|---|
committer | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2015-08-27 10:08:54 +0000 |
commit | 973d2e01cbba2c89bbdf62d004833facc3d95637 (patch) | |
tree | d1f2f1c2c249c6a7184b2ed4347520120dc249ce /gcc/config/aarch64/iterators.md | |
parent | 3f2dd8cdb9a8a9f4a9ff1b0a3bc05badd2ba936c (diff) | |
download | gcc-973d2e01cbba2c89bbdf62d004833facc3d95637.zip gcc-973d2e01cbba2c89bbdf62d004833facc3d95637.tar.gz gcc-973d2e01cbba2c89bbdf62d004833facc3d95637.tar.bz2 |
aarch64.md (*condjump): Handle functions > 1 MiB.
2015-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Andre Vieira <andre.simoesdiasvieira@arm.com>
gcc/
* 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/
* gcc.target/aarch64/long_branch_1.c: New test.
From-SVN: r227253
Diffstat (limited to 'gcc/config/aarch64/iterators.md')
-rw-r--r-- | gcc/config/aarch64/iterators.md | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index b8a45d1..475aa6e 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -817,9 +817,15 @@ ;; Emit cbz/cbnz depending on comparison type. (define_code_attr cbz [(eq "cbz") (ne "cbnz") (lt "cbnz") (ge "cbz")]) +;; Emit inverted cbz/cbnz depending on comparison type. +(define_code_attr inv_cb [(eq "cbnz") (ne "cbz") (lt "cbz") (ge "cbnz")]) + ;; Emit tbz/tbnz depending on comparison type. (define_code_attr tbz [(eq "tbz") (ne "tbnz") (lt "tbnz") (ge "tbz")]) +;; Emit inverted tbz/tbnz depending on comparison type. +(define_code_attr inv_tb [(eq "tbnz") (ne "tbz") (lt "tbz") (ge "tbnz")]) + ;; Max/min attributes. (define_code_attr maxmin [(smax "max") (smin "min") |