diff options
author | Richard Stallman <rms@gnu.org> | 1993-08-04 22:34:32 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-08-04 22:34:32 +0000 |
commit | 543624ee233050ac5b43ff8be6488a7a1d95f28d (patch) | |
tree | 6a1efb5284501778831c6401e6fc23bb95c8a66d /gcc | |
parent | 05b4c365bb02319e3106ab950c14fb5f8f604213 (diff) | |
download | gcc-543624ee233050ac5b43ff8be6488a7a1d95f28d.zip gcc-543624ee233050ac5b43ff8be6488a7a1d95f28d.tar.gz gcc-543624ee233050ac5b43ff8be6488a7a1d95f28d.tar.bz2 |
(movdf+2): Allow `f' register as source operand in
first alternative.
From-SVN: r5070
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/clipper/clipper.md | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/gcc/config/clipper/clipper.md b/gcc/config/clipper/clipper.md index 24aa258..24a82bf 100644 --- a/gcc/config/clipper/clipper.md +++ b/gcc/config/clipper/clipper.md @@ -203,22 +203,21 @@ (define_insn "" [(set (match_operand:DF 0 "memory_operand" "=o,m") - (match_operand:DF 1 "register_operand" "r,f"))] + (match_operand:DF 1 "register_operand" "rf,f"))] "" "* { - if (which_alternative == 0) /* r -> o */ - { - rtx xops[4]; - xops[0] = operands[0]; - xops[1] = adj_offsettable_operand (operands[0], 4); - xops[2] = operands[1]; - xops[3] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1); - output_asm_insn (\"storw %2,%0\;storw %3,%1\", xops); - return \"\"; - } + rtx xops[4]; + + if (REGNO (operands[1]) >= 16) /* f -> m */ + return \"stord %1,%0\"; - return \"stord %1,%0\"; /* f-> m */ + xops[0] = operands[0]; /* r -> o */ + xops[1] = adj_offsettable_operand (operands[0], 4); + xops[2] = operands[1]; + xops[3] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1); + output_asm_insn (\"storw %2,%0\;storw %3,%1\", xops); + return \"\"; }" [(set_attr "type" "store,store") (set_attr "cc" "clobber,unchanged")]) |