OSDN Git Service

2002-05-13 Scott Marks <SMarks@mobile-mind.com>
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 May 2002 10:55:31 +0000 (10:55 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 May 2002 10:55:31 +0000 (10:55 +0000)
* config/fr30/fr30.md: Only allow splits of immediate loads if the destination
is a register.

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

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

index 6381456..a4fc0d8 100644 (file)
@@ -1,3 +1,8 @@
+2002-05-13  Scott Marks <SMarks@mobile-mind.com>
+
+       * config/fr30/fr30.md: Only allow splits of immediate loads
+       if the destination is a register.
+
 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        * Makefile.in (c-common.o, cppinit.o): Update.
index 1177c68..fe13326 100644 (file)
@@ -21,7 +21,6 @@
 
 ;;- See file "rtl.def" for documentation on define_insn, match_*, et. al.
 
-;;}}} \f
 ;;{{{ Attributes 
 
 (define_attr "length" "" (const_int 2))
 (define_split
   [(set (match_operand:SI 0 "register_operand"  "")
        (match_operand:SI 1 "immediate_operand" ""))]
-   "INTVAL (operands[1]) <= -1 && INTVAL (operands[1]) >= -128"
+   "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)))]
    "{
 (define_split
   [(set (match_operand:SI 0 "register_operand"  "")
        (match_operand:SI 1 "immediate_operand" ""))]
-   "(INTVAL (operands[1]) < 0) && ((INTVAL (operands[1]) & 0x00ffffff) == 0)"
+   "(INTVAL (operands[1]) < 0) && ((INTVAL (operands[1]) & 0x00ffffff) == 0)
+    && GET_CODE (operands[0]) == REG"
    [(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))])]
   [(set (match_operand:SI 0 "register_operand"  "")
        (match_operand:SI 1 "immediate_operand" ""))]
    "(INTVAL (operands[1]) > 0x00ffffff)
-   && ((INTVAL (operands[1]) >> exact_log2 (INTVAL (operands[1]) & (- INTVAL (operands[1])))) < 0x100)"
+   && ((INTVAL (operands[1]) >> exact_log2 (INTVAL (operands[1]) & (- INTVAL (operands[1])))) < 0x100)
+   && GET_CODE (operands[0]) == REG"
    [(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))])]