aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/fr30/fr30.h2
-rw-r--r--gcc/config/fr30/fr30.md23
3 files changed, 19 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4fe6deb..b7134ef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+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.
diff --git a/gcc/config/fr30/fr30.h b/gcc/config/fr30/fr30.h
index 2f0cf99..33ba6ca 100644
--- a/gcc/config/fr30/fr30.h
+++ b/gcc/config/fr30/fr30.h
@@ -1134,7 +1134,7 @@ do \
uninitialized global data will be output in the data section if
`-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
used. */
-#define BSS_SECTION_ASM_OP "\t.bss"
+#define BSS_SECTION_ASM_OP "\t.section .bss"
/*}}}*/
/*{{{ The Overall Framework of an Assembler File. */
diff --git a/gcc/config/fr30/fr30.md b/gcc/config/fr30/fr30.md
index fe13326..8557ce8 100644
--- a/gcc/config/fr30/fr30.md
+++ b/gcc/config/fr30/fr30.md
@@ -286,13 +286,13 @@
;; 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]);
}"
)
@@ -301,9 +301,8 @@
;; 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))])]
@@ -319,10 +318,9 @@
;; 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))])]
@@ -1439,6 +1437,7 @@
""
[(set_attr "length" "0")]
)
+;;}}}
;; Local Variables:
;; mode: md