RE: [PATCH v2 3/6] powerpc: Convert flush_icache_range & friends to C
From: Alastair D'Silva <hidden>
Date: 2019-09-04 03:42:39
Also in:
lkml
On Tue, 2019-09-03 at 22:11 +0200, Gabriel Paubert wrote:
On Tue, Sep 03, 2019 at 01:31:57PM -0500, Segher Boessenkool wrote:quoted
On Tue, Sep 03, 2019 at 07:05:19PM +0200, Christophe Leroy wrote:quoted
Le 03/09/2019 à 18:04, Segher Boessenkool a écrit :quoted
(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.quoted
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.
Given that we're dealing with registers holding data that has been named outside the assembler, this feels dirty. We'd be using the register passed in as 'msr' to hold the address instead. Since we're not short on registers, I don't see this as a good change. -- Alastair D'Silva Open Source Developer Linux Technology Centre, IBM Australia mob: 0423 762 819