aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/iterators.md
diff options
context:
space:
mode:
authorThomas Preud'homme <thopre01@gcc.gnu.org>2015-08-27 10:08:54 +0000
committerThomas Preud'homme <thopre01@gcc.gnu.org>2015-08-27 10:08:54 +0000
commit973d2e01cbba2c89bbdf62d004833facc3d95637 (patch)
treed1f2f1c2c249c6a7184b2ed4347520120dc249ce /gcc/config/aarch64/iterators.md
parent3f2dd8cdb9a8a9f4a9ff1b0a3bc05badd2ba936c (diff)
downloadgcc-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.md6
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")