The `far_branch` attribute only ever takes the values 0 or 1, so make it
a `no/yes` valued string attribute instead.
gcc/ChangeLog:
* config/aarch64/aarch64.md (far_branch): Replace 0/1 with
no/yes.
(aarch64_bcond): Handle rename.
(aarch64_cbz<optab><mode>1): Likewise.
(*aarch64_tbz<optab><mode>1): Likewise.
(@aarch64_tbz<optab><ALLI:mode><GPI:mode>): Likewise.
---
gcc/config/aarch64/aarch64.md | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index fffa97a1ef1..0a378ab377d 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -569,9 +569,7 @@ (define_attr "enabled" "no,yes"
;; Attribute that specifies whether we are dealing with a branch to a
;; label that is far away, i.e. further away than the maximum/minimum
;; representable in a signed 21-bits number.
-;; 0 :=: no
-;; 1 :=: yes
-(define_attr "far_branch" "" (const_int 0))
+(define_attr "far_branch" "no,yes" (const_string "no"))
;; Attribute that specifies whether the alternative uses MOVPRFX.
(define_attr "movprfx" "no,yes" (const_string "no"))
@@ -795,8 +793,8 @@ (define_insn "aarch64_bcond"
(const_int BRANCH_LEN_N_1MiB))
(lt (minus (match_dup 2) (pc))
(const_int BRANCH_LEN_P_1MiB)))
- (const_int 0)
- (const_int 1)))]
+ (const_string "no")
+ (const_string "yes")))]
)
;; For a 24-bit immediate CST we can optimize the compare for equality
@@ -860,8 +858,8 @@ (define_insn "aarch64_cbz<optab><mode>1"
(const_int BRANCH_LEN_N_1MiB))
(lt (minus (match_dup 2) (pc))
(const_int BRANCH_LEN_P_1MiB)))
- (const_int 0)
- (const_int 1)))]
+ (const_string "no")
+ (const_string "yes")))]
)
;; For an LT/GE comparison against zero, emit `TBZ`/`TBNZ`
@@ -875,7 +873,7 @@ (define_insn "*aarch64_tbz<optab><mode>1"
{
if (get_attr_length (insn) == 8)
{
- if (get_attr_far_branch (insn) == 1)
+ if (get_attr_far_branch (insn) == FAR_BRANCH_YES)
return aarch64_gen_far_branch (operands, 1, "Ltb",
"<inv_tb>\\t%<w>0, <sizem1>, ");
else
@@ -904,8 +902,8 @@ (define_insn "*aarch64_tbz<optab><mode>1"
(const_int BRANCH_LEN_N_1MiB))
(lt (minus (match_dup 1) (pc))
(const_int BRANCH_LEN_P_1MiB)))
- (const_int 0)
- (const_int 1)))]
+ (const_string "no")
+ (const_string "yes")))]
)
;; -------------------------------------------------------------------
@@ -969,8 +967,8 @@ (define_insn "@aarch64_tbz<optab><ALLI:mode><GPI:mode>"
(const_int BRANCH_LEN_N_1MiB))
(lt (minus (match_dup 2) (pc))
(const_int BRANCH_LEN_P_1MiB)))
- (const_int 0)
- (const_int 1)))]
+ (const_string "no")
+ (const_string "yes")))]
)
--
2.45.2