This is the mail archive of the 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]

RFA: fix handling of 'p' in constrain_operands

bootstrapped & regtested on i686-pc-linux-gnu

2002-02-11  J"orn Rennecke <>

	* recog.c (constrain_operands): Fix handling of 'p'.

diff -pur /view/renneckej-CVS20020529-base/vob/sh5gcc.cmp/src/gcc/recog.c /view/renneckej-CVS20020529-postmerge0/vob/sh5gcc.cmp/src/gcc/recog.c
--- /view/renneckej-CVS20020529-base/vob/sh5gcc.cmp/src/gcc/recog.c	Wed Jun  5 17:58:51 2002
+++ /view/renneckej-CVS20020529-postmerge0/vob/sh5gcc.cmp/src/gcc/recog.c	Wed Jul  3 13:43:53 2002
@@ -2431,10 +2486,12 @@ constrain_operands (strict)
 		/* p is used for address_operands.  When we are called by
 		   gen_reload, no one will have checked that the address is
 		   strictly valid, i.e., that all pseudos requiring hard regs
-		   have gotten them.  */
-		if (strict <= 0
-		    || (strict_memory_address_p (recog_data.operand_mode[opno],
-						 op)))
+		   have gotten them.
+		   Note that the mode of the operand is the mode of the
+		   address, while strict_memory_address_p needs the mode of
+		   the memory access; by convention, that is VOIDmode for
+		   address operands.  */
+		if (strict <= 0 || (strict_memory_address_p (VOIDmode, op)))
 		  win = 1;

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