Thread (28 messages) 28 messages, 5 authors, 2019-09-16

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help