• Joshua Kinard's avatar
    Improve atomic.h robustness · b4f2a17b
    Joshua Kinard authored
    I've maintained this patch, originally from Thiemo Seufer in 2004, for a
    really long time, but I think it's time for it to get a look at for
    possible inclusion.  I have had no problems with it across various SGI
    systems over the years.
    
    To quote the post here:
    http://www.linux-mips.org/archives/linux-mips/2004-12/msg00000.html
    
    "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 uses registers instead, and makes the ll/sc
    arguments more explicit. In some cases it will lead also to better
    register scheduling because the register isn't bound to an output
    any more."
    Signed-off-by: default avatarJoshua Kinard <kumba@gentoo.org>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/4029/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    b4f2a17b
atomic.h 17.1 KB