OSDN Git Service

* config/fr30/fr30.md: Remove previous restriction on splits.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 May 2002 18:05:08 +0000 (18:05 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 May 2002 18:05:08 +0000 (18:05 +0000)
  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".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54010 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/fr30/fr30.h
gcc/config/fr30/fr30.md

index 4fe6deb..b7134ef 100644 (file)
@@ -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.
index 2f0cf99..33ba6ca 100644 (file)
@@ -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"
 
 /*}}}*/ \f
 /*{{{  The Overall Framework of an Assembler File.  */
index fe13326..8557ce8 100644 (file)
 ;; 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