This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
MIPS patch for movdicc pattern
- To: gcc-patches at gcc dot gnu dot org
- Subject: MIPS patch for movdicc pattern
- From: Richard Sandiford <r dot sandiford at redhat dot com>
- Date: 27 Jul 2001 10:52:09 +0100
The MIPS movdicc pattern fails to check whether 64-bit integer instructions
are available, causing gcc.c-torture/execute/950512-1.c to fail on MIPS IV
in 32-bit mode.
Tested for regressions on mips1/o32, mips4/o32 and mips4/eabi. OK to apply?
2001-07-27 Richard Sandiford <rsandifo@redhat.com>
* mips.md (movdicc): Make conditional on TARGET_64BIT. Likewise
for the unnamed instructions it expands to.
Index: mips.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.md,v
retrieving revision 1.102
diff -u -p -d -r1.102 mips.md
--- mips.md 2001/07/20 10:35:33 1.102
+++ mips.md 2001/07/27 09:14:37
@@ -10180,7 +10183,7 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j
(const_int 0)])
(match_operand:DI 2 "se_reg_or_0_operand" "dJ,0")
(match_operand:DI 3 "se_reg_or_0_operand" "0,dJ")))]
- "ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE"
+ "(ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE) && TARGET_64BIT"
"@
mov%B4\\t%0,%z2,%1
mov%b4\\t%0,%z3,%1"
@@ -10195,7 +10198,7 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j
(const_int 0)])
(match_operand:DI 2 "se_reg_or_0_operand" "dJ,0")
(match_operand:DI 3 "se_reg_or_0_operand" "0,dJ")))]
- "ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE"
+ "(ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE) && TARGET_64BIT"
"@
mov%B4\\t%0,%z2,%1
mov%b4\\t%0,%z3,%1"
@@ -10211,7 +10214,7 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j
(const_int 0)])
(match_operand:DI 1 "se_reg_or_0_operand" "dJ,0")
(match_operand:DI 2 "se_reg_or_0_operand" "0,dJ")))]
- "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT"
+ "ISA_HAS_CONDMOVE && TARGET_HARD_FLOAT && TARGET_64BIT"
"@
mov%T3\\t%0,%z1,%4
mov%t3\\t%0,%z2,%4"
@@ -10331,7 +10334,7 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j
(if_then_else:DI (match_dup 5)
(match_operand:DI 2 "se_reg_or_0_operand" "")
(match_operand:DI 3 "se_reg_or_0_operand" "")))]
- "ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE"
+ "(ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE) && TARGET_64BIT"
"
{
gen_conditional_move (operands);