https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104117

--- Comment #20 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Iain Sandoe from comment #15)
> (In reply to Vladimir Makarov from comment #13)
> > I think there are two code spots whose pitfalls resulted in the PR.

> > --- a/gcc/config/rs6000/rs6000.c
> > +++ b/gcc/config/rs6000/rs6000.c
> > @@ -8202,7 +8202,7 @@ legitimate_lo_sum_address_p (machine_mode mode, rtx x,
> > int strict)
> >      {
> >        bool large_toc_ok;
> > 
> > -      if (DEFAULT_ABI == ABI_V4 && flag_pic)
> > +      if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && flag_pic)
> >         return false;

On testing, this is not sufficient - one ends up with ICEs when we reject a
valid (UNSPEC-wrapped) address here.  So I think that the slightly more
elaborate target changes are required - but the LRA change seems fine!

... reg-straps on this old h/w take > 1 day .. so some more time will be needed
for a complete answer.

Reply via email to