[Skiboot] [PATCH 03/13] cpu.h: implement this_cpu for clang
Balbir Singh
bsingharora at gmail.com
Fri May 4 00:09:03 AEST 2018
On Thu, 2018-05-03 at 17:11 +0930, Joel Stanley wrote:
> On 3 May 2018 at 12:43, Joel Stanley <joel at jms.id.au> wrote:
> > On 3 May 2018 at 07:19, Balbir Singh <bsingharora at gmail.com> wrote:
> > > On Wed, 2018-05-02 at 18:07 +0930, Joel Stanley wrote:
> > > > Clang can't use the global register variable, so instead load struct
> > > > cpu_thread from r13 and return it.
> > > >
> > >
> > > How do we know clang is not using r13 for anything else? Does -ffixed-reg
> > > work with r13?
> >
> > That is a really good question. I was really surprised (excited!) that
> > it booted once I had fixed all of the issues I knew about, I forgot to
> > go back and ensure clang was reserving r13.
> >
>
> Here's the answer:
>
> https://github.com/llvm-mirror/llvm/blob/ff51e42075425aa13ef7d6f5adbe408ace59b8d6/lib/Target/PowerPC/PPCRegisterInfo.cpp#L282
>
> // On PPC64, r13 is the thread pointer. Never allocate this register.
> if (TM.isPPC64())
> markSuperRegs(Reserved, PPC::R13);
>
> So there we go. I will add this information to the commit message.
>
Awesome! Looks good
Cheers,
Balbir
More information about the Skiboot
mailing list