Commit 8dfea428 by Scott Marks Committed by Nick Clifton

fr30.md: Only allow splits of immediate loads if the destination is a register.

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.

From-SVN: r53418
parent aaec0464
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> 2002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
* Makefile.in (c-common.o, cppinit.o): Update. * Makefile.in (c-common.o, cppinit.o): Update.
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
;;- See file "rtl.def" for documentation on define_insn, match_*, et. al. ;;- See file "rtl.def" for documentation on define_insn, match_*, et. al.
;;}}}
;;{{{ Attributes ;;{{{ Attributes
(define_attr "length" "" (const_int 2)) (define_attr "length" "" (const_int 2))
...@@ -288,7 +287,8 @@ ...@@ -288,7 +287,8 @@
(define_split (define_split
[(set (match_operand:SI 0 "register_operand" "") [(set (match_operand:SI 0 "register_operand" "")
(match_operand:SI 1 "immediate_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) (match_dup 2))
(set:SI (match_dup 0) (sign_extend:SI (subreg:QI (match_dup 0) 0)))] (set:SI (match_dup 0) (sign_extend:SI (subreg:QI (match_dup 0) 0)))]
"{ "{
...@@ -302,7 +302,8 @@ ...@@ -302,7 +302,8 @@
(define_split (define_split
[(set (match_operand:SI 0 "register_operand" "") [(set (match_operand:SI 0 "register_operand" "")
(match_operand:SI 1 "immediate_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)) [(set:SI (match_dup 0) (match_dup 2))
(parallel [(set:SI (match_dup 0) (ashift:SI (match_dup 0) (const_int 24))) (parallel [(set:SI (match_dup 0) (ashift:SI (match_dup 0) (const_int 24)))
(clobber (reg:CC 16))])] (clobber (reg:CC 16))])]
...@@ -320,7 +321,8 @@ ...@@ -320,7 +321,8 @@
[(set (match_operand:SI 0 "register_operand" "") [(set (match_operand:SI 0 "register_operand" "")
(match_operand:SI 1 "immediate_operand" ""))] (match_operand:SI 1 "immediate_operand" ""))]
"(INTVAL (operands[1]) > 0x00ffffff) "(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)) [(set:SI (match_dup 0) (match_dup 2))
(parallel [(set:SI (match_dup 0) (ashift:SI (match_dup 0) (match_dup 3))) (parallel [(set:SI (match_dup 0) (ashift:SI (match_dup 0) (match_dup 3)))
(clobber (reg:CC 16))])] (clobber (reg:CC 16))])]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment