• Peter Zijlstra's avatar
    frv: Rewrite atomic implementation · b0d8003e
    Peter Zijlstra authored
    Mostly complete rewrite of the FRV atomic implementation, instead of
    using assembly files, use inline assembler.
    
    The out-of-line CONFIG option makes a bit of a mess of things, but a
    little CPP trickery gets that done too.
    
    FRV already had the atomic logic ops but under a non standard name,
    the reimplementation provides the generic names and provides the
    intermediate form required for the bitops implementation.
    
    The slightly inconsistent __atomic32_fetch_##op naming is because
    __atomic_fetch_##op conlicts with GCC builtin functions.
    
    The 64bit atomic ops use the inline assembly %Ln construct to access
    the low word register (r+1), afaik this construct was not previously
    used in the kernel and is completely undocumented, but I found it in
    the FRV GCC code and it seems to work.
    
    FRV had a non-standard definition of atomic_{clear,set}_mask() which
    would work types other than atomic_t, the one user relying on that
    (arch/frv/kernel/dma.c) got converted to use the new intermediate
    form.
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    b0d8003e
Name
Last commit
Last update
..
Makefile Loading commit data...
__ashldi3.S Loading commit data...
__ashrdi3.S Loading commit data...
__lshrdi3.S Loading commit data...
__muldi3.S Loading commit data...
__negdi2.S Loading commit data...
__ucmpdi2.S Loading commit data...
atomic-lib.c Loading commit data...
atomic-ops.S Loading commit data...
atomic64-ops.S Loading commit data...
cache.S Loading commit data...
checksum.c Loading commit data...
insl_ns.S Loading commit data...
insl_sw.S Loading commit data...
memcpy.S Loading commit data...
memset.S Loading commit data...
outsl_ns.S Loading commit data...
outsl_sw.S Loading commit data...