On Fri, 25 Mar 2022 16:07:47 +0100 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > On 3/25/22 15:30, Claudio Imbrenda wrote: > > On Fri, 25 Mar 2022 08:29:11 +0100 > > Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > > > >> On 3/24/22 18:40, Heiko Carstens wrote: > >>> On Wed, Mar 23, 2022 at 06:03:19PM +0100, Nico Boehr wrote: > >>> ... > >>>> +static inline unsigned long load_guarded(unsigned long *p) > >>>> +{ > >>>> + unsigned long v; > >>>> + > >>>> + asm(".insn rxy,0xe3000000004c, %0,%1" > >>>> + : "=d" (v) > >>>> + : "m" (*p) > >>>> + : "r14", "memory"); > >>>> + return v; > >>>> +} > >>> > >>> It was like that before, but why is r14 within the clobber list? > >>> That doesn't make sense. > >> > >> r14 is changed in the gs handler of the gs test which is executed if the > >> "guarded" part of the load takes place. > > > > I will add a comment explaining that when picking the patch > > Do we need load_guarded() in this new header? > The load/store_gscb() functions have potential to be shared across tests > but the lg doesn't need to be executed, no? > > We could opt to leave it in gs.c instead yes, probably a better idea. I'd still add the comment, though :) shall I just fix this up when picking?