This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: MIPS patch submittion
- To: Clinton Popetz <cpopetz at cygnus dot com>
- Subject: Re: MIPS patch submittion
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Fri, 14 Jan 2000 03:14:31 -0700
- cc: gcc-patches at egcs dot cygnus dot com
- Reply-To: law at cygnus dot com
In message <m2901tsk7a.fsf@kinslayer.cpopetz.com>you write:
> Dmitri Makarov <dim@windriver.com> writes:
>
> > The reason is that a MIPS special register, namely HI, is being allocated
> > by reloader to mtime variable. Reloader generates an insn that doesn't
> > satisfy its constraines:
> >
> > cc1: test.c: In function `ExecuteJava':
> > test.c:2109: internal error--insn does not satisfy its constraints:
> >
> > (insn 28897 28895 8899 (set (reg:SI 64 hi)
> > (reg:SI 2 v0)) 243 {movsi_internal2+1} (nil)
> > (nil))
> >
> > This situation is caused by erroneous macro REGISTER_MOVE_COST, which
> > includes code to prevent allocation of HI/LO/HILO to pseudos, but does
> > not. The fix is the rewritten macro which does what it's intented to
> > do.
>
> I submitted a patch for this last month. However, I just tried to find
> the message in the archives and can't, so it seems it never made it; I
> was having mail server difficulties at that time. This was my patch,
> for reference. (I didn't change the macro to a function, although I
> consider that a worthwile change.)
If it's any consolation, I certainly remember discussing it with you as you
were working through the problem which led to this patch.
> * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
> case for moving from HI/LO/HI_LO_REG. This makes the behavior
> match the comment for MIPS16.
This is fine. Please install this patch.
Thanks,
jeff