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: [ip2k port] bugfix


On Mon, Aug 26, 2002 at 10:07:39PM +0400, Denis Chertykov wrote:
> Zack Weinberg <zack@codesourcery.com> writes:
> > ip2k_set_compare is still constructing its own CONST_DOUBLEs, which is
> > verboten.  CONST_DOUBLEs are opaque entities and may be manipulated
> > *only* by the interfaces exposed in real.h and rtl.h.
> 
> Will be fixed.

Thanks.

I imagine it is as simple as changing the body of ip2k_set_compare to

{
  ip2k_compare_operands[0] = x;
  ip2k_compare_operands[1] = y;
  return "";
}

and then finding out what breaks, and fixing it.

> > Looking at the function, it appears to be forcing the creation of
> > non-canonical RTL, which is also a no-no.  What are you actually
> > trying to achieve here?
> 
> It was not me :-(

You will probably find it easier to locate the real problem and fix
it, though.  (It should be a case of some code somewhere expecting
DImode compares against an immediate value to come with a CONST_DOUBLE
second operand, even if the sign-extended quantity fits in a
CONST_INT.)

zw


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