(const_string "yes")
(const_string "no"))))
+;; Is this a bbi instruction or not
+(define_attr "bbi" "no,yes" (const_string "no"))
;; Describe a user's asm statement.
(define_asm_attributes
(nil)
(nil)])
-(define_delay (eq_attr "type" "branch")
+;; GAS refuses to assemble bbi[n]l. So for bbi instructions, do not
+;; allow them to annul-false.
+(define_delay (and (eq_attr "type" "branch") (eq_attr "bbi" "no"))
[(and (eq_attr "dslot" "ok_in_dslot") (eq_attr "length" "4"))
(nil)
(and (eq_attr "branch_likely" "yes") (and (eq_attr "dslot" "ok_in_dslot") (eq_attr "length" "4")))])
+(define_delay (and (eq_attr "type" "branch") (eq_attr "bbi" "yes"))
+ [(and (eq_attr "dslot" "ok_in_dslot") (eq_attr "length" "4"))
+ (nil)
+ (nil)])
+
(define_delay (eq_attr "type" "call")
[(and (eq_attr "dslot" "ok_in_dslot") (eq_attr "length" "4"))
(nil)
""
"bb%A2\\t%0(31-%1),%P2%P3"
[(set_attr "length" "4")
- (set_attr "type" "branch")])
+ (set_attr "type" "branch")
+ (set_attr "bbi" "yes")])
(define_insn ""
[(set (pc)
""
"bb%A3\\t%0(31-%1),%P2%P3"
[(set_attr "length" "4")
- (set_attr "type" "branch")])
+ (set_attr "type" "branch")
+ (set_attr "bbi" "yes")])
(define_insn ""
[(set (pc)
"0"
"bb%A2\\t%0(31-%1),%P2%P3"
[(set_attr "length" "4")
- (set_attr "type" "branch")])
+ (set_attr "type" "branch")
+ (set_attr "bbi" "yes")])
(define_insn ""
[(set (pc)
"0"
"bb%A3\\t%0(31-%1),%P2%P3"
[(set_attr "length" "4")
- (set_attr "type" "branch")])
+ (set_attr "type" "branch")
+ (set_attr "bbi" "yes")])
(define_insn ""
[(set (pc)
""
"bb%A3\\t%0(%p1),%P2%P3"
[(set_attr "length" "4")
- (set_attr "type" "branch")])
+ (set_attr "type" "branch")
+ (set_attr "bbi" "yes")])
(define_insn ""
[(set (pc)
""
"bb%A2\\t%0(%p1),%P2%P3"
[(set_attr "length" "4")
- (set_attr "type" "branch")])
+ (set_attr "type" "branch")
+ (set_attr "bbi" "yes")])
\f
;;
;; ....................