+2007-04-08 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/29932
+ * config/avr/predicates.md (io_address_operand): Delete predicate.
+ (low_io_address_operand): Don't use 'mode' argument.
+ (higth_io_address_operand): Rename ...
+ (high_io_address_operand): ... to this. Don't use 'mode' argument.
+ * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
+ for above change.
+
2007-04-07 Daniel Berlin <dberlin@dberlin.org>
Revert change removing staticp.
(if_then_else
(match_operator 0 "eqne_operator"
[(zero_extract
- (mem:QI (match_operand 1 "higth_io_address_operand" "n"))
+ (mem:QI (match_operand 1 "high_io_address_operand" "n"))
(const_int 1)
(match_operand 2 "const_int_operand" "n"))
(const_int 0)])
[(set (pc)
(if_then_else
(match_operator 0 "gelt_operator"
- [(mem:QI (match_operand 1 "higth_io_address_operand" "n"))
+ [(mem:QI (match_operand 1 "high_io_address_operand" "n"))
(const_int 0)])
(label_ref (match_operand 2 "" ""))
(pc)))]
(and (match_code "reg")
(match_test "REGNO (op) == REG_SP")))
-;; Return true if OP is a valid address for an I/O register.
-(define_predicate "io_address_operand"
- (and (match_code "const_int")
- (match_test "INTVAL (op) >= 0x20
- && INTVAL (op) <= 0x60 - GET_MODE_SIZE (mode)")))
-
;; Return true if OP is a valid address for lower half of I/O space.
(define_predicate "low_io_address_operand"
(and (match_code "const_int")
- (match_test "INTVAL (op) >= 0x20
- && INTVAL (op) <= 0x40 - GET_MODE_SIZE (mode)")))
-
-;; Return true if OP is a valid address for higth half of I/O space.
-(define_predicate "higth_io_address_operand"
+ (match_test "IN_RANGE((INTVAL (op)), 0x20, 0x3F)")))
+
+;; Return true if OP is a valid address for high half of I/O space.
+(define_predicate "high_io_address_operand"
(and (match_code "const_int")
- (match_test "INTVAL (op) >= 0x40
- && INTVAL (op) <= 0x60 - GET_MODE_SIZE (mode)")))
+ (match_test "IN_RANGE((INTVAL (op)), 0x40, 0x5F)")))
;; Return 1 if OP is the zero constant for MODE.
(define_predicate "const0_operand"