aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2000-12-01 02:03:24 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2000-12-01 02:03:24 +0000
commitecfdeaeb3445d0fd2fc9758f6deeb207bbb4b90d (patch)
treea08f99604d8a8f3ed8ea92b695cb54d4536a6dbe
parent6934615b9736d0a777ce7f6933129ea1cdd2dd23 (diff)
downloadgcc-ecfdeaeb3445d0fd2fc9758f6deeb207bbb4b90d.zip
gcc-ecfdeaeb3445d0fd2fc9758f6deeb207bbb4b90d.tar.gz
gcc-ecfdeaeb3445d0fd2fc9758f6deeb207bbb4b90d.tar.bz2
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
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/sh/sh.md18
2 files changed, 13 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 93b0f9d..ebed5d0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
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
of subsequent insns.
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index de1f553..5973bb1 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -4295,7 +4295,7 @@
(define_expand "fpu_switch0"
[(set (match_operand:SI 0 "" "") (match_dup 2))
(set (match_dup 1) (mem:PSI (match_dup 0)))]
- ""
+ "TARGET_SH4"
"
{
operands[1] = get_fpscr_rtx ();
@@ -4309,7 +4309,7 @@
[(set (match_operand:SI 0 "" "") (match_dup 2))
(set (match_dup 3) (plus:SI (match_dup 0) (const_int 4)))
(set (match_dup 1) (mem:PSI (match_dup 3)))]
- ""
+ "TARGET_SH4"
"
{
operands[1] = get_fpscr_rtx ();
@@ -4323,7 +4323,7 @@
(define_expand "movpsi"
[(set (match_operand:PSI 0 "register_operand" "")
(match_operand:PSI 1 "general_movsrc_operand" ""))]
- ""
+ "TARGET_SH4"
"")
;; The c / m alternative is a fake to guide reload to load directly into
@@ -4336,9 +4336,11 @@
(define_insn "fpu_switch"
[(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"))]
- "! reload_completed
- || true_regnum (operands[0]) != FPSCR_REG || GET_CODE (operands[1]) != MEM
- || GET_CODE (XEXP (operands[1], 0)) != PLUS"
+ "TARGET_SH4
+ && (! reload_completed
+ || true_regnum (operands[0]) != FPSCR_REG
+ || GET_CODE (operands[1]) != MEM
+ || GET_CODE (XEXP (operands[1], 0)) != PLUS)"
"@
! precision stays the same
lds.l %1,fpscr
@@ -4354,7 +4356,7 @@
(define_split
[(set (reg:PSI FPSCR_REG)
(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))]
"
{
@@ -4368,7 +4370,7 @@
(define_split
[(set (reg:PSI FPSCR_REG)
(mem:PSI (match_operand:SI 0 "register_operand" "r")))]
- ""
+ "TARGET_SH4"
[(set (match_dup 0) (plus:SI (match_dup 0) (const_int -4)))]
"
{