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...