• R
    overhaul sh atomics for new atomics framework, add j-core cas.l backend · 61b1e75f
    Rich Felker 提交于
    sh needs runtime-selected atomic backends since there are a number of
    supported models that use non-forwards-compatible (non-smp-compatible)
    atomic mechanisms. previously, the code paths for this were highly
    inefficient since they involved C function calls with multiple
    branches in the callee and heavy spills in the caller. the new code
    performs calls the runtime-selected asm fragment from inline asm with
    extremely minimal clobbers, rather than using a function call.
    
    for the sh4a case where the atomic mechanism is known and there is no
    forward-compatibility issue, the movli.l and movco.l instructions are
    provided as a_ll and a_sc, allowing the new shared atomic.h to
    generate efficient inline versions of all the basic atomic operations
    without needing a cas loop.
    61b1e75f
atomic_arch.h 961 字节