aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2004-08-29 12:06:00 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2004-08-29 12:06:00 +0000
commit2435c4c1c8cc0a415821b89239a57f45df6dd968 (patch)
treed5ecaadb2c92c38a6fe551539c14e679de4c9a58
parent53d9ac3b1dc712a83f28d4a9a8265eb2a0d0758f (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/mips/mips.md57
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;