• R
    fix arm atomic store and generate simpler/less-bloated/faster code · 35a6801c
    Rich Felker 提交于
    atomic store was lacking a barrier, which was fine for legacy arm with
    no real smp and kernel-emulated cas, but unsuitable for more modern
    systems. the kernel provides another "kuser" function, at 0xffff0fa0,
    which could be used for the barrier, but using that would drop support
    for kernels 2.6.12 through 2.6.14 unless an extra conditional were
    added to check for barrier availability. just using the barrier in the
    kernel cas is easier, and, based on my reading of the assembly code in
    the kernel, does not appear to be significantly slower.
    
    at the same time, other atomic operations are adapted to call the
    kernel cas function directly rather than using a_cas; due to small
    differences in their interface contracts, this makes the generated
    code much simpler.
    35a6801c
atomic.h 2.0 KB