On 06/01/2011 05:35 PM, Georg-Johann Lay wrote: > The reason for why a subreg of hardreg is there during reload is that > on avr, r29:r28 is the frame pointer (word_mode is QI and Pmode is > HI). Because in many places of the compiler, there are tests like "if > (regno == FRAME_POINTER_REGNUM)", the high byte of the frame pointer > gets garbaged.
Maybe it would help for your port to define a separate FRAME_POINTER_REGNUM, able to hold an HImode value, which then gets eliminated to HARD_FRAME_POINTER_REGNUM? This mechanism is used on many other ports if you need examples. Bernd