>optimistation. For some reason changing the top level CFLAGS (was this the
>wrong place to do it) has resulted in the makefile deciding to recompile
>everything.

That's deliberate.  The makefile tracks the flags for each source file and 
recompiles any whose flags have changed.

>       1:      ldrbt   r6,[r6],#0
>
>I don't recognise the t flag, and I can't remeber what happens with ldr
>(ldm, IIRC, does the writeback after the first register load, but all that
>might have changed/become undefined with StrongARM) but the instruction as
>shown looks very odd - is it a very expensive No-op? Or is it doing something
>cunning? Should the #0 be pre-increment instead?
>(b.t.w. I get no warnings with -O2, which was what I was using)

What the instruction is trying to do is load the word pointed to by R6 and 
store the result back in that same register.  It's not a no-op.  The T flag 
means to do the access as if from user mode; this is probably a get_user call.

Technically the results are UNPREDICTABLE if the two registers are the same.  
I guess get_user needs to tell gcc that the input and output regs mustn't 
overlap.  If you send me a fragment of code that exhibits the problem I'll 
cook up a fix.

p.


unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]

Reply via email to