summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorcrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-19 15:33:16 +0000
committercrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-19 15:33:16 +0000
commitc8473aa2f9e0848b8d1f7f4d02698e8fa3d072e8 (patch)
treebff688c288d9277af919f019a5eb7e62581daf65 /gcc/config
parent0410b9415e7905504647a084c60c205c91d7e5fd (diff)
downloadgcc-c8473aa2f9e0848b8d1f7f4d02698e8fa3d072e8.tar.gz
Some sh.md fixes (fallout from earlier changes)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36535 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/sh/sh.md25
1 files changed, 11 insertions, 14 deletions
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 59ec818deda..70510bd3f50 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -4219,9 +4219,8 @@ else
(set_attr "fp_mode" "single")])
(define_expand "floatsisf2"
- [(parallel [(set (match_operand:SF 0 "arith_reg_operand" "")
- (float:SF (match_operand:SI 1 "arith_reg_operand" "")))
- (use (match_dup 2))])]
+ [(set (match_operand:SF 0 "arith_reg_operand" "")
+ (float:SF (match_operand:SI 1 "reg_no_subreg_operand" "")))]
"TARGET_SH3E"
"
{
@@ -4230,25 +4229,23 @@ else
emit_sf_insn (gen_floatsisf2_i4 (operands[0], operands[1], get_fpscr_rtx ()));
DONE;
}
- operands[2] = get_fpscr_rtx ();
}")
(define_insn "floatsisf2_i4"
[(set (match_operand:SF 0 "arith_reg_operand" "=f")
(float:SF (match_operand:SI 1 "reg_no_subreg_operand" "y")))
(use (match_operand:PSI 2 "fpscr_operand" "c"))]
- "TARGET_SH3E"
+ "TARGET_SH4"
"float %1,%0"
[(set_attr "type" "fp")
(set_attr "fp_mode" "single")])
-;; ??? This pattern is used nowhere. floatsisf always expands to floatsisf_i4.
-;; (define_insn "*floatsisf2_ie"
-;; [(set (match_operand:SF 0 "arith_reg_operand" "=f")
-;; (float:SF (reg:SI 22)))]
-;; "TARGET_SH3E && ! TARGET_SH4"
-;; "float fpul,%0"
-;; [(set_attr "type" "fp")])
+(define_insn "*floatsisf2_ie"
+ [(set (match_operand:SF 0 "arith_reg_operand" "=f")
+ (float:SF (match_operand:SI 1 "reg_no_subreg_operand" "y")))]
+ "TARGET_SH3E && ! TARGET_SH4"
+ "float %1,%0"
+ [(set_attr "type" "fp")])
(define_expand "fix_truncsfsi2"
[(set (match_operand:SI 0 "register_operand" "=y")
@@ -4480,7 +4477,7 @@ else
(define_expand "floatsidf2"
[(match_operand:DF 0 "arith_reg_operand" "")
- (match_operand:SI 1 "arith_reg_operand" "")]
+ (match_operand:SI 1 "reg_no_subreg_operand" "")]
"TARGET_SH4"
"
{
@@ -4624,7 +4621,7 @@ else
(define_expand "extendsfdf2"
[(match_operand:DF 0 "arith_reg_operand" "")
- (match_operand:SF 1 "arith_reg_operand" "")]
+ (match_operand:SF 1 "reg_no_subreg_operand" "")]
"TARGET_SH4"
"
{