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]

Re: target/10073: [3.2/3.3 regression]: powerpc cannot split insn while building rscheme


On Sat, Mar 15, 2003 at 12:38:04AM +1030, Alan Modra wrote:
> On Fri, Mar 14, 2003 at 08:48:50AM -0500, Jakub Jelinek wrote:
> > On Fri, Mar 14, 2003 at 02:42:17PM +0100, Gabriel Dos Reis wrote:
> > > Did you regtest it?  If so, I would be happy to have it on 3_2-branch.
> 
> In progress.  I'm heading to bed, and will report back in the morning.

No regressions.  powerpc-linux, powerpc64-linux c,c++,f77 on gcc-3.3
branch.

	* combine.c (force_to_mode <NOT>): Use gen_int_mode.

OK mainline and 3.3?

Index: gcc/combine.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/combine.c,v
retrieving revision 1.347
diff -u -p -r1.347 combine.c
--- gcc/combine.c	8 Mar 2003 01:38:25 -0000	1.347
+++ gcc/combine.c	14 Mar 2003 12:18:35 -0000
@@ -7358,7 +7358,8 @@ force_to_mode (x, mode, mask, reg, just_
 	      < GET_MODE_BITSIZE (GET_MODE (x)))
 	  && INTVAL (XEXP (XEXP (x, 0), 1)) < HOST_BITS_PER_WIDE_INT)
 	{
-	  temp = GEN_INT (mask << INTVAL (XEXP (XEXP (x, 0), 1)));
+	  temp = gen_int_mode (mask << INTVAL (XEXP (XEXP (x, 0), 1)),
+			       GET_MODE (x));
 	  temp = gen_binary (XOR, GET_MODE (x), XEXP (XEXP (x, 0), 0), temp);
 	  x = gen_binary (LSHIFTRT, GET_MODE (x), temp, XEXP (XEXP (x, 0), 1));
 

> > Also, a minimal testcase for it would be very good if it can be distilled.
> 
> typedef struct
> {
>   unsigned short digits[4];
> } INT_64;
> 
> INT_64 int_64_com (INT_64 a)
> {
>   a.digits[0] ^= 0xFFFF;
>   a.digits[1] ^= 0xFFFF;
>   a.digits[2] ^= 0xFFFF;
>   a.digits[3] ^= 0xFFFF;
>   return a;
> }

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


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