diff options
author | crux <crux@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-09-19 15:33:16 +0000 |
---|---|---|
committer | crux <crux@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-09-19 15:33:16 +0000 |
commit | c8473aa2f9e0848b8d1f7f4d02698e8fa3d072e8 (patch) | |
tree | bff688c288d9277af919f019a5eb7e62581daf65 /gcc/config | |
parent | 0410b9415e7905504647a084c60c205c91d7e5fd (diff) | |
download | gcc-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.md | 25 |
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" " { |