]> granicus.if.org Git - musl/commit
overhaul powerpc atomics for new atomics framework
authorRich Felker <dalias@aerifal.cx>
Fri, 22 Jan 2016 02:58:32 +0000 (02:58 +0000)
committerRich Felker <dalias@aerifal.cx>
Fri, 22 Jan 2016 02:58:32 +0000 (02:58 +0000)
commit513c043694f500a01bd8d899ff73441aa7457a1f
tree50c4cc8fc40a4f847b94542559206bb2fb603529
parent16b55298dc4b6a54d287d7494e04542667ef8861
overhaul powerpc atomics for new atomics framework

previously powerpc had a_cas defined in terms of its native ll/sc
style operations, but all other atomics were defined in terms of
a_cas. instead define a_ll and a_sc so the compiler can generate
optimized versions of all the atomic ops and perform better inlining
of a_cas.

extracting the result of the sc (stwcx.) instruction is rather awkward
because it's natively stored in a condition flag, which is not
representable in inline asm. but even with this limitation the new
code still seems significantly better.
arch/powerpc/atomic_arch.h