Commit ecfdeaeb by Alexandre Oliva Committed by Alexandre Oliva

sh.md (fpu_switch0, [...]): Only match on TARGET_SH4.

* config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
splits): Only match on TARGET_SH4.

From-SVN: r37907
parent 6934615b
2000-11-30 Alexandre Oliva <aoliva@redhat.com> 2000-11-30 Alexandre Oliva <aoliva@redhat.com>
* config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
splits): Only match on TARGET_SH4.
* combine.c (try_combine): Disregard USEs when updating LOG_LINKS * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
of subsequent insns. of subsequent insns.
......
...@@ -4295,7 +4295,7 @@ ...@@ -4295,7 +4295,7 @@
(define_expand "fpu_switch0" (define_expand "fpu_switch0"
[(set (match_operand:SI 0 "" "") (match_dup 2)) [(set (match_operand:SI 0 "" "") (match_dup 2))
(set (match_dup 1) (mem:PSI (match_dup 0)))] (set (match_dup 1) (mem:PSI (match_dup 0)))]
"" "TARGET_SH4"
" "
{ {
operands[1] = get_fpscr_rtx (); operands[1] = get_fpscr_rtx ();
...@@ -4309,7 +4309,7 @@ ...@@ -4309,7 +4309,7 @@
[(set (match_operand:SI 0 "" "") (match_dup 2)) [(set (match_operand:SI 0 "" "") (match_dup 2))
(set (match_dup 3) (plus:SI (match_dup 0) (const_int 4))) (set (match_dup 3) (plus:SI (match_dup 0) (const_int 4)))
(set (match_dup 1) (mem:PSI (match_dup 3)))] (set (match_dup 1) (mem:PSI (match_dup 3)))]
"" "TARGET_SH4"
" "
{ {
operands[1] = get_fpscr_rtx (); operands[1] = get_fpscr_rtx ();
...@@ -4323,7 +4323,7 @@ ...@@ -4323,7 +4323,7 @@
(define_expand "movpsi" (define_expand "movpsi"
[(set (match_operand:PSI 0 "register_operand" "") [(set (match_operand:PSI 0 "register_operand" "")
(match_operand:PSI 1 "general_movsrc_operand" ""))] (match_operand:PSI 1 "general_movsrc_operand" ""))]
"" "TARGET_SH4"
"") "")
;; The c / m alternative is a fake to guide reload to load directly into ;; The c / m alternative is a fake to guide reload to load directly into
...@@ -4336,9 +4336,11 @@ ...@@ -4336,9 +4336,11 @@
(define_insn "fpu_switch" (define_insn "fpu_switch"
[(set (match_operand:PSI 0 "register_operand" "=c,c,r,c,c,r,m,r") [(set (match_operand:PSI 0 "register_operand" "=c,c,r,c,c,r,m,r")
(match_operand:PSI 1 "general_movsrc_operand" "c,>,m,m,r,r,r,!c"))] (match_operand:PSI 1 "general_movsrc_operand" "c,>,m,m,r,r,r,!c"))]
"! reload_completed "TARGET_SH4
|| true_regnum (operands[0]) != FPSCR_REG || GET_CODE (operands[1]) != MEM && (! reload_completed
|| GET_CODE (XEXP (operands[1], 0)) != PLUS" || true_regnum (operands[0]) != FPSCR_REG
|| GET_CODE (operands[1]) != MEM
|| GET_CODE (XEXP (operands[1], 0)) != PLUS)"
"@ "@
! precision stays the same ! precision stays the same
lds.l %1,fpscr lds.l %1,fpscr
...@@ -4354,7 +4356,7 @@ ...@@ -4354,7 +4356,7 @@
(define_split (define_split
[(set (reg:PSI FPSCR_REG) [(set (reg:PSI FPSCR_REG)
(mem:PSI (match_operand:SI 0 "register_operand" "r")))] (mem:PSI (match_operand:SI 0 "register_operand" "r")))]
"find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" "TARGET_SH4 && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
[(set (match_dup 0) (match_dup 0))] [(set (match_dup 0) (match_dup 0))]
" "
{ {
...@@ -4368,7 +4370,7 @@ ...@@ -4368,7 +4370,7 @@
(define_split (define_split
[(set (reg:PSI FPSCR_REG) [(set (reg:PSI FPSCR_REG)
(mem:PSI (match_operand:SI 0 "register_operand" "r")))] (mem:PSI (match_operand:SI 0 "register_operand" "r")))]
"" "TARGET_SH4"
[(set (match_dup 0) (plus:SI (match_dup 0) (const_int -4)))] [(set (match_dup 0) (plus:SI (match_dup 0) (const_int -4)))]
" "
{ {
......
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