Re: [PATCH v2 3/6] powerpc: Convert flush_icache_range & friends to C

From: Gabriel Paubert
Date: Tue Sep 03 2019 - 16:23:03 EST

On Tue, Sep 03, 2019 at 01:31:57PM -0500, Segher Boessenkool wrote:
> On Tue, Sep 03, 2019 at 07:05:19PM +0200, Christophe Leroy wrote:
> > Le 03/09/2019 à 18:04, Segher Boessenkool a écrit :
> > >(Why are they separate though? It could just be one loop var).
> >
> > Yes it could just be a single loop var, but in that case it would have
> > to be reset at the start of the second loop, which means we would have
> > to pass 'addr' for resetting the loop anyway,
> Right, I noticed that after hitting send, as usual.
> > so I opted to do it
> > outside the inline asm by using to separate loop vars set to their
> > starting value outside the inline asm.
> The thing is, the way it is written now, it will get separate registers
> for each loop (with proper earlyclobbers added). Not that that really
> matters of course, it just feels wrong :-)

After "mtmsr %3", it is always possible to copy %0 to %3 and use it as
an address register for the second loop. One register less to allocate
for the compiler. Constraints of course have to be adjusted.

> Segher