On Tue, May 15, 2007 at 09:31:10AM +0100, Mark Shinwell wrote:
> Rask Ingemann Lambertsen wrote:
> >On Mon, May 14, 2007 at 10:47:13PM +0100, Mark Shinwell wrote:
> >
> >[snip]
> >> - the last use of reg2 (in B) is inside a matched input operand;
> >[snip]
> >>The reload used for the instruction at B looks like this:
[snip]
> >> GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 1), inc by 8
[snip]
> > I could be missing something here, but aren't matched operands given a
> >reload type of RELOAD_OTHER rather than RELOAD_FOR_INPUT?
>
> I might be tripping up on the terminology here then. The original
> instruction is:
>
> (insn:HI 5291 5282 5295 2 (set (reg:DF 4078 [ Jd+1040 ])
> (mem/s:DF (plus:SI (reg/f:SI 3275)
> (reg:SI 3812)) [30 Jd+1040 S8 A64])) 578 {*movdf_vfp} (nil)
> (expr_list:REG_DEAD (reg/f:SI 3275)
> (expr_list:REG_DEAD (reg:SI 3812)
> (nil))))
Where is the matched input operand you're referring to? I don't see any
in the *movdf_vfp pattern.
> > Also, which register is the "inc by 8" note for? R9 or sl?
>
> I thought the value of "inc" wasn't relevant here since we aren't
> dealing with an autoincrement instruction (see the comment in
> reload.h:struct reload).
True, there's a bug in the pretty-printer. Quoting reload1.c:
/* AUTO_INC reloads need to be handled even if inherited. We got an
AUTO_INC reload if reload_out is set but reload_out_reg isn't. */
--
Rask Ingemann Lambertsen
756 unexpected failures, and counting...