On Thu, 2016-02-25 at 14:52 +0100, Torsten Duwe wrote:
> On Thu, Feb 25, 2016 at 01:28:27AM +1100, Michael Ellerman wrote:
> > @@ -450,17 +448,44 @@ static unsigned long stub_for_addr(const Elf64_Shdr 
> > *sechdrs,
> >     return (unsigned long)&stubs[i];
> >  }
> >  
> > +#ifdef CC_USING_MPROFILE_KERNEL
> > +static int is_early_mcount_callsite(u32 *instruction)
> > +{
> > +   /* -mprofile-kernel sequence starting with
> > +    * mflr r0 and maybe std r0, LRSAVE(r1).
> > +    */
> > +   if ((instruction[-3] == PPC_INST_MFLR &&
> > +        instruction[-2] == PPC_INST_STD_LR) ||
> > +       instruction[-2] == PPC_INST_MFLR) {
> > +           /* Nothing to be done here, it's an _mcount
> > +            * call location and r2 will have to be
> > +            * restored in the _mcount function.
> > +            */
> > +           return 1;
> > +   }
> > +   return 0;
> > +}
> > +#else
> 
> *You* said this might page fault :)

It does :) - I fixed it up in patch 6, sorry I realise that's hard to review.

> Did we agree yet whether we insist on a streamlined compiler?
> (GCC commit e95d0248dace required)?

No we didn't really. I think you're right that it's not /too/ hard to support
both sequences. But we may change our mind in future :)

cheers

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to