Commit 85fff2f3 by Richard Kenner

(movsf): Emit frsp if storing to memory and not PowerPC.

(movsf matcher): Remove explicit frsp.
(store sf with update): Likewise.

From-SVN: r7578
parent ab4a5fc9
...@@ -3788,7 +3788,20 @@ ...@@ -3788,7 +3788,20 @@
} }
if (GET_CODE (operands[0]) == MEM) if (GET_CODE (operands[0]) == MEM)
operands[1] = force_reg (SFmode, operands[1]); {
operands[1] = force_reg (SFmode, operands[1]);
if (! TARGET_POWERPC)
if (reload_in_progress || reload_completed)
emit_insn (gen_truncdfsf2 (operands[1],
gen_rtx (SUBREG, DFmode, operands[1], 0)));
else
{
rtx newreg = gen_reg_rtx (SFmode);
emit_insn (gen_truncdfsf2 (newreg,
gen_rtx (SUBREG, DFmode, operands[1], 0)));
operands[1] = newreg;
}
}
if (GET_CODE (operands[0]) == REG && REGNO (operands[0]) < 32) if (GET_CODE (operands[0]) == REG && REGNO (operands[0]) < 32)
{ {
...@@ -3842,7 +3855,7 @@ ...@@ -3842,7 +3855,7 @@
"@ "@
fmr %0,%1 fmr %0,%1
lfs%U1%X1 %0,%1 lfs%U1%X1 %0,%1
frsp %1,%1\;stfs%U0%X0 %1,%0" stfs%U0%X0 %1,%0"
[(set_attr "type" "fp,fpload,*") [(set_attr "type" "fp,fpload,*")
(set_attr "length" "*,*,8")]) (set_attr "length" "*,*,8")])
...@@ -4439,8 +4452,8 @@ ...@@ -4439,8 +4452,8 @@
(plus:SI (match_dup 1) (match_dup 2)))] (plus:SI (match_dup 1) (match_dup 2)))]
"" ""
"@ "@
frsp %3,%3\;stfsux %3,%0,%2 stfsux %3,%0,%2
frsp %3,%3\;stfsu %3,%2(%0)") stfsu %3,%2(%0)")
(define_insn "" (define_insn ""
[(set (match_operand:DF 3 "gpc_reg_operand" "=f,f") [(set (match_operand:DF 3 "gpc_reg_operand" "=f,f")
......
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