Dominic Sweetman wrote: > > Thiemo writes: > > > the atomic functions use so far memory references for the inline > > assembler to access the semaphore. This can lead to additional > > instructions in the ll/sc loop, because newer compilers don't > > expand the memory reference any more but leave it to the assembler. > > > > The appended patch... > > I thought it was an explicit aim of the substantial rewrite of the > MIPS backend for 3.x to get the compiler to generate only "real" > instructions, not macros which expand to multiple instructions inside > the assembler. So it's disappointing if newer compilers got worse. The compiler was improved with PIC code in mind. The kernel is non-PIC, and can't allow explicit relocs by the compiler because of the weird code model used for 64bit kernels. This led to some degradation and even subtle failures for inline assembly code which relies on assumptions about earlier compiler's behaviour. Thiemo