diff options
author | James E Wilson <wilson@specifixinc.com> | 2004-08-17 21:18:42 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2004-08-17 14:18:42 -0700 |
commit | 4ef47bd8e00785f76cdd08aad06c5a7ffe161804 (patch) | |
tree | 15d5f5beb92127acde67c21a2758c860662f6b34 /gcc | |
parent | 1a10290c1cb47d0e1308e35e56087c53344daaae (diff) | |
download | gcc-4ef47bd8e00785f76cdd08aad06c5a7ffe161804.zip gcc-4ef47bd8e00785f76cdd08aad06c5a7ffe161804.tar.gz gcc-4ef47bd8e00785f76cdd08aad06c5a7ffe161804.tar.bz2 |
Canonicalize mips conditional move patterns.
* config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
of VOIDmode for comparison code mode.
* config/mips/mips.md: For conditional move patterns, use mode of
first compare operand for comparison mode, instead of VOIDmode.
From-SVN: r86145
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 3 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 72 |
3 files changed, 45 insertions, 37 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 407ee87..d18d798 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-08-17 James E Wilson <wilson@specifixinc.com> + + * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead + of VOIDmode for comparison code mode. + * config/mips/mips.md: For conditional move patterns, use mode of + first compare operand for comparison mode, instead of VOIDmode. + 2004-08-17 Mark Mitchell <mark@codesourcery.com> PR c++/15871 diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 066df11..7865ca8 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -2578,7 +2578,8 @@ gen_conditional_move (rtx *operands) mips_emit_compare (&code, &op0, &op1, true); emit_insn (gen_rtx_SET (VOIDmode, operands[0], gen_rtx_IF_THEN_ELSE (GET_MODE (operands[0]), - gen_rtx_fmt_ee (code, VOIDmode, + gen_rtx_fmt_ee (code, + GET_MODE (op0), op0, op1), operands[2], operands[3]))); } diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 38b38de..b9c6f92 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -7310,9 +7310,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:SI 0 "register_operand" "=d,d") (if_then_else:SI - (match_operator 4 "equality_operator" - [(match_operand:SI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:SI 4 "equality_operator" + [(match_operand:SI 1 "register_operand" "d,d") + (const_int 0)]) (match_operand:SI 2 "reg_or_0_operand" "dJ,0") (match_operand:SI 3 "reg_or_0_operand" "0,dJ")))] "ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE" @@ -7325,9 +7325,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:SI 0 "register_operand" "=d,d") (if_then_else:SI - (match_operator 4 "equality_operator" - [(match_operand:DI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:DI 4 "equality_operator" + [(match_operand:DI 1 "register_operand" "d,d") + (const_int 0)]) (match_operand:SI 2 "reg_or_0_operand" "dJ,0") (match_operand:SI 3 "reg_or_0_operand" "0,dJ")))] "ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE" @@ -7340,9 +7340,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:SI 0 "register_operand" "=d,d") (if_then_else:SI - (match_operator 3 "equality_operator" - [(match_operand:CC 4 "register_operand" "z,z") - (const_int 0)]) + (match_operator:CC 3 "equality_operator" + [(match_operand:CC 4 "register_operand" "z,z") + (const_int 0)]) (match_operand:SI 1 "reg_or_0_operand" "dJ,0") (match_operand:SI 2 "reg_or_0_operand" "0,dJ")))] "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT" @@ -7355,9 +7355,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:DI 0 "register_operand" "=d,d") (if_then_else:DI - (match_operator 4 "equality_operator" - [(match_operand:SI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:SI 4 "equality_operator" + [(match_operand:SI 1 "register_operand" "d,d") + (const_int 0)]) (match_operand:DI 2 "reg_or_0_operand" "dJ,0") (match_operand:DI 3 "reg_or_0_operand" "0,dJ")))] "(ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE) && TARGET_64BIT" @@ -7370,9 +7370,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:DI 0 "register_operand" "=d,d") (if_then_else:DI - (match_operator 4 "equality_operator" - [(match_operand:DI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:DI 4 "equality_operator" + [(match_operand:DI 1 "register_operand" "d,d") + (const_int 0)]) (match_operand:DI 2 "reg_or_0_operand" "dJ,0") (match_operand:DI 3 "reg_or_0_operand" "0,dJ")))] "(ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE) && TARGET_64BIT" @@ -7385,9 +7385,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:DI 0 "register_operand" "=d,d") (if_then_else:DI - (match_operator 3 "equality_operator" - [(match_operand:CC 4 "register_operand" "z,z") - (const_int 0)]) + (match_operator:CC 3 "equality_operator" + [(match_operand:CC 4 "register_operand" "z,z") + (const_int 0)]) (match_operand:DI 1 "reg_or_0_operand" "dJ,0") (match_operand:DI 2 "reg_or_0_operand" "0,dJ")))] "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT && TARGET_64BIT" @@ -7400,9 +7400,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:SF 0 "register_operand" "=f,f") (if_then_else:SF - (match_operator 4 "equality_operator" - [(match_operand:SI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:SI 4 "equality_operator" + [(match_operand:SI 1 "register_operand" "d,d") + (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" @@ -7415,9 +7415,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:SF 0 "register_operand" "=f,f") (if_then_else:SF - (match_operator 4 "equality_operator" - [(match_operand:DI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:DI 4 "equality_operator" + [(match_operand:DI 1 "register_operand" "d,d") + (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" @@ -7430,9 +7430,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:SF 0 "register_operand" "=f,f") (if_then_else:SF - (match_operator 3 "equality_operator" - [(match_operand:CC 4 "register_operand" "z,z") - (const_int 0)]) + (match_operator:CC 3 "equality_operator" + [(match_operand:CC 4 "register_operand" "z,z") + (const_int 0)]) (match_operand:SF 1 "register_operand" "f,0") (match_operand:SF 2 "register_operand" "0,f")))] "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT" @@ -7445,9 +7445,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:DF 0 "register_operand" "=f,f") (if_then_else:DF - (match_operator 4 "equality_operator" - [(match_operand:SI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:SI 4 "equality_operator" + [(match_operand:SI 1 "register_operand" "d,d") + (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" @@ -7460,9 +7460,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:DF 0 "register_operand" "=f,f") (if_then_else:DF - (match_operator 4 "equality_operator" - [(match_operand:DI 1 "register_operand" "d,d") - (const_int 0)]) + (match_operator:DI 4 "equality_operator" + [(match_operand:DI 1 "register_operand" "d,d") + (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" @@ -7475,9 +7475,9 @@ dsrl\t%3,%3,1\n\ (define_insn "" [(set (match_operand:DF 0 "register_operand" "=f,f") (if_then_else:DF - (match_operator 3 "equality_operator" - [(match_operand:CC 4 "register_operand" "z,z") - (const_int 0)]) + (match_operator:CC 3 "equality_operator" + [(match_operand:CC 4 "register_operand" "z,z") + (const_int 0)]) (match_operand:DF 1 "register_operand" "f,0") (match_operand:DF 2 "register_operand" "0,f")))] "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT" |