summaryrefslogtreecommitdiff
path: root/src/internal/atomic.h
AgeCommit message (Collapse)AuthorLines
2018-04-19remove a_ctz_l from arch specific atomic_arch.hAndre McCurdy-19/+23
Update atomic.h to provide a_ctz_l in all cases (atomic_arch.h should now only provide a_ctz_32 and/or a_ctz_64). The generic version of a_ctz_32 now takes advantage of a_clz_32 if available and the generic a_ctz_64 now makes use of a_ctz_32.
2017-08-29add a_clz_64 helper functionSzabolcs Nagy-0/+21
counts leading zero bits of a 64bit int, undefined on zero input. (has nothing to do with atomics, added to atomic.h so target specific helper functions are together.) there is a logarithmic generic implementation and another in terms of a 32bit a_clz_32 on targets where that's available.
2016-02-23allow implementing a_cas_p with pointer-sized ll/scBobby Bingham-0/+18
No current ports do this, but it will be useful for porting to 64-bit ll/sc architectures, such as mips64 and powerpc64.
2016-01-21refactor internal atomic.hRich Felker-0/+275
rather than having each arch provide its own atomic.h, there is a new shared atomic.h in src/internal which pulls arch-specific definitions from arc/$(ARCH)/atomic_arch.h. the latter can be extremely minimal, defining only a_cas or new ll/sc type primitives which the shared atomic.h will use to construct everything else. this commit avoids making heavy changes to the individual archs' atomic implementations. definitions which are identical or near-identical to what the new shared atomic.h would produce have been removed, but otherwise the changes made are just hooking up the arch-specific files to the new infrastructure. major changes to take advantage of the new system will come in subsequent commits.
2011-02-15move arch-specific internal headers into placeRich Felker-110/+0
2011-02-12ensure that the compiler doesn't try to reorder around atomic opsRich Felker-13/+13
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+110