This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

MIPS patch for movdicc pattern



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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]