+2002-05-29 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * config/fr30/fr30.md: Remove previous restriction on splits.
+ Enforce conformance through gen_lowpart and cont_int_operand.
+ * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
+ as the assembler does not support ".bss".
+
2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
* config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
;; and time by loading the positive value and then sign extending it.
(define_split
[(set (match_operand:SI 0 "register_operand" "")
- (match_operand:SI 1 "immediate_operand" ""))]
- "INTVAL (operands[1]) <= -1 && INTVAL (operands[1]) >= -128
- && GET_CODE (operands[0]) == REG"
- [(set:SI (match_dup 0) (match_dup 2))
- (set:SI (match_dup 0) (sign_extend:SI (subreg:QI (match_dup 0) 0)))]
+ (match_operand:SI 1 "const_int_operand" ""))]
+ "INTVAL (operands[1]) <= -1 && INTVAL (operands[1]) >= -128"
+ [(set:SI (match_dup 0) (match_dup 1))
+ (set:SI (match_dup 0) (sign_extend:SI (match_dup 2)))]
"{
- operands[2] = GEN_INT (INTVAL (operands[1]) & 0xff);
+ operands[1] = GEN_INT (INTVAL (operands[1]) & 0xff);
+ operands[2] = gen_lowpart (QImode, operands[0]);
}"
)
;; and space by loading the byte value and shifting it into place.
(define_split
[(set (match_operand:SI 0 "register_operand" "")
- (match_operand:SI 1 "immediate_operand" ""))]
- "(INTVAL (operands[1]) < 0) && ((INTVAL (operands[1]) & 0x00ffffff) == 0)
- && GET_CODE (operands[0]) == REG"
+ (match_operand:SI 1 "const_int_operand" ""))]
+ "(INTVAL (operands[1]) < 0) && ((INTVAL (operands[1]) & 0x00ffffff) == 0)"
[(set:SI (match_dup 0) (match_dup 2))
(parallel [(set:SI (match_dup 0) (ashift:SI (match_dup 0) (const_int 24)))
(clobber (reg:CC 16))])]
;; and shifting it into place.
(define_split
[(set (match_operand:SI 0 "register_operand" "")
- (match_operand:SI 1 "immediate_operand" ""))]
+ (match_operand:SI 1 "const_int_operand" ""))]
"(INTVAL (operands[1]) > 0x00ffffff)
- && ((INTVAL (operands[1]) >> exact_log2 (INTVAL (operands[1]) & (- INTVAL (operands[1])))) < 0x100)
- && GET_CODE (operands[0]) == REG"
+ && ((INTVAL (operands[1]) >> exact_log2 (INTVAL (operands[1]) & (- INTVAL (operands[1])))) < 0x100)"
[(set:SI (match_dup 0) (match_dup 2))
(parallel [(set:SI (match_dup 0) (ashift:SI (match_dup 0) (match_dup 3)))
(clobber (reg:CC 16))])]
""
[(set_attr "length" "0")]
)
+;;}}} \f
;; Local Variables:
;; mode: md