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]
Other format: [Raw text]

amd64 define_predicate fallout


On Fri, Aug 13, 2004 at 11:06:27AM -0400, Richard Kenner wrote:
> This fixes it and is what I think you meant, right?

Yes, this is a latent bug -- the previous definition of 
constant_call_address_operand didn't check its mode operand.

There are a double handful of occurences.  This should fix them.


r~




Index: i386.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v
retrieving revision 1.555
diff -c -p -d -u -r1.555 i386.md
--- i386.md	13 Aug 2004 15:33:54 -0000	1.555
+++ i386.md	13 Aug 2004 18:37:08 -0000
@@ -13668,7 +13668,7 @@
 	 (match_operand 1 "" ""))]
   "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
 {
-  if (constant_call_address_operand (operands[0], QImode))
+  if (constant_call_address_operand (operands[0], Pmode))
     return "call\t%P0";
   return "call\t%A0";
 }
@@ -13679,7 +13679,7 @@
 	 (match_operand 1 "" ""))]
   "SIBLING_CALL_P (insn) && !TARGET_64BIT"
 {
-  if (constant_call_address_operand (operands[0], QImode))
+  if (constant_call_address_operand (operands[0], Pmode))
     return "jmp\t%P0";
   return "jmp\t%A0";
 }
@@ -13690,7 +13690,7 @@
 	 (match_operand 1 "" ""))]
   "!SIBLING_CALL_P (insn) && TARGET_64BIT"
 {
-  if (constant_call_address_operand (operands[0], QImode))
+  if (constant_call_address_operand (operands[0], Pmode))
     return "call\t%P0";
   return "call\t%A0";
 }
@@ -19518,7 +19518,7 @@
 			    (match_operand:SI 3 "immediate_operand" "i")))]
   "!TARGET_64BIT"
 {
-  if (constant_call_address_operand (operands[1], QImode))
+  if (constant_call_address_operand (operands[1], Pmode))
     {
       if (SIBLING_CALL_P (insn))
 	return "jmp\t%P1";
@@ -19564,7 +19564,7 @@
 	      (match_operand:SI 2 "" "")))]
   "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
 {
-  if (constant_call_address_operand (operands[1], QImode))
+  if (constant_call_address_operand (operands[1], Pmode))
     return "call\t%P1";
   return "call\t%*%1";
 }
@@ -19576,7 +19576,7 @@
 	      (match_operand:SI 2 "" "")))]
   "SIBLING_CALL_P (insn) && !TARGET_64BIT"
 {
-  if (constant_call_address_operand (operands[1], QImode))
+  if (constant_call_address_operand (operands[1], Pmode))
     return "jmp\t%P1";
   return "jmp\t%*%1";
 }
@@ -19588,7 +19588,7 @@
 	      (match_operand:DI 2 "" "")))]
   "!SIBLING_CALL_P (insn) && TARGET_64BIT"
 {
-  if (constant_call_address_operand (operands[1], QImode))
+  if (constant_call_address_operand (operands[1], Pmode))
     return "call\t%P1";
   return "call\t%A1";
 }


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