PR target/21299 (reload accepting invalid asm)

Rask Ingemann Lambertsen rask@sygehus.dk
Tue Aug 8 15:21:00 GMT 2006


On Tue, Aug 08, 2006 at 03:15:08PM +0200, Jan Hubicka wrote:
> +		class = REG_CLASS_FROM_CONSTRAINT (c, p);
> +		/* When class is too tiny to hold the operand, ignore it.
> +		   See PR21299.  First quickly test if things looks slopy
> +		   and if they does try to look if register is really
> +		   available.  */
> +		if (CLASS_MAX_NREGS (class, GET_MODE (recog_data.operand[i]))
> +		    > (int)reg_class_size [class])
> +		  {

IMHO, this is a bug in the i386 definition of CLASS_MAX_NREGS(). It returns
2 for CLASS_MAX_NREGS (AREG, DImode) when class AREG has only one register.
But the documentation is not clear on this matter. I would appreciate some
clarification.

-- 
Rask Ingemann Lambertsen



More information about the Gcc-patches mailing list