diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2004-08-29 12:06:00 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2004-08-29 12:06:00 +0000 |
commit | 2435c4c1c8cc0a415821b89239a57f45df6dd968 (patch) | |
tree | d5ecaadb2c92c38a6fe551539c14e679de4c9a58 | |
parent | 53d9ac3b1dc712a83f28d4a9a8265eb2a0d0758f (diff) | |
download | gcc-2435c4c1c8cc0a415821b89239a57f45df6dd968.zip gcc-2435c4c1c8cc0a415821b89239a57f45df6dd968.tar.gz gcc-2435c4c1c8cc0a415821b89239a57f45df6dd968.tar.bz2 |
mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
* config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
(mov[sd]fcc): Likewise.
From-SVN: r86723
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 57 |
2 files changed, 20 insertions, 42 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5aa281..9145ba4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2004-08-29 Richard Sandiford <rsandifo@redhat.com> + * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF. + (mov[sd]fcc): Likewise. + +2004-08-29 Richard Sandiford <rsandifo@redhat.com> + * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF. 2004-08-29 Richard Sandiford <rsandifo@redhat.com> diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 97caec2..76751c2 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -5548,35 +5548,20 @@ beq\t%2,%.,1b\;\ [(set_attr "type" "condmove") (set_attr "mode" "<GPR:MODE>")]) -(define_insn "*movsf_on_<MOVECC:mode>" - [(set (match_operand:SF 0 "register_operand" "=f,f") - (if_then_else:SF +(define_insn "*mov<SCALARF:mode>_on_<MOVECC:mode>" + [(set (match_operand:SCALARF 0 "register_operand" "=f,f") + (if_then_else:SCALARF (match_operator:MOVECC 4 "equality_operator" [(match_operand:MOVECC 1 "register_operand" "<MOVECC:reg>,<MOVECC:reg>") (const_int 0)]) - (match_operand:SF 2 "register_operand" "f,0") - (match_operand:SF 3 "register_operand" "0,f")))] - "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT" - "@ - mov%T4.s\t%0,%2,%1 - mov%t4.s\t%0,%3,%1" - [(set_attr "type" "condmove") - (set_attr "mode" "SF")]) - -(define_insn "*movdf_on_<MOVECC:mode>" - [(set (match_operand:DF 0 "register_operand" "=f,f") - (if_then_else:DF - (match_operator:MOVECC 4 "equality_operator" - [(match_operand:MOVECC 1 "register_operand" "<MOVECC:reg>,<MOVECC:reg>") - (const_int 0)]) - (match_operand:DF 2 "register_operand" "f,0") - (match_operand:DF 3 "register_operand" "0,f")))] - "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT" + (match_operand:SCALARF 2 "register_operand" "f,0") + (match_operand:SCALARF 3 "register_operand" "0,f")))] + "ISA_HAS_CONDMOVE" "@ - mov%T4.d\t%0,%2,%1 - mov%t4.d\t%0,%3,%1" + mov%T4.<fmt>\t%0,%2,%1 + mov%t4.<fmt>\t%0,%3,%1" [(set_attr "type" "condmove") - (set_attr "mode" "DF")]) + (set_attr "mode" "<SCALARF:MODE>")]) ;; These are the main define_expand's used to make conditional moves. @@ -5592,25 +5577,13 @@ beq\t%2,%.,1b\;\ DONE; }) -(define_expand "movsfcc" - [(set (match_dup 4) (match_operand 1 "comparison_operator")) - (set (match_operand:SF 0 "register_operand") - (if_then_else:SF (match_dup 5) - (match_operand:SF 2 "register_operand") - (match_operand:SF 3 "register_operand")))] - "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT" -{ - gen_conditional_move (operands); - DONE; -}) - -(define_expand "movdfcc" +(define_expand "mov<mode>cc" [(set (match_dup 4) (match_operand 1 "comparison_operator")) - (set (match_operand:DF 0 "register_operand") - (if_then_else:DF (match_dup 5) - (match_operand:DF 2 "register_operand") - (match_operand:DF 3 "register_operand")))] - "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT" + (set (match_operand:SCALARF 0 "register_operand") + (if_then_else:SCALARF (match_dup 5) + (match_operand:SCALARF 2 "register_operand") + (match_operand:SCALARF 3 "register_operand")))] + "ISA_HAS_CONDMOVE" { gen_conditional_move (operands); DONE; |