> On Aug 31, 2016, at 9:00 AM, Bill Schmidt <wschm...@linux.vnet.ibm.com> wrote: > > > On 8/31/16 1:19 AM, Segher Boessenkool wrote: >>> >> If (say) base=r1 offset=r0 this will now adjust r1? That cannot be good. > Mm, yeah, that wasn't well-thought. Was thinking 0, not r0. Will have > to avoid > that.
Unfortunately this kind of patch won't be able to address the problem. If we have a fixed base register (stack or frame pointer) and the offset register has been assigned to r0, then the offset register is illegal to use in replace_equiv_address. As far as I can see, we can only fix this by making a change in secondary reload so that we have a scratch register available. Volunteers? :) Bill