about summary refs log tree commit diff
path: root/src/internal/atomic.h
Commit message (Collapse)AuthorAgeFilesLines
* remove a_ctz_l from arch specific atomic_arch.hAndre McCurdy2018-04-191-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.
* add a_clz_64 helper functionSzabolcs Nagy2017-08-291-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.
* allow implementing a_cas_p with pointer-sized ll/scBobby Bingham2016-02-231-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.
* refactor internal atomic.hRich Felker2016-01-211-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.
* move arch-specific internal headers into placeRich Felker2011-02-151-110/+0
|
* ensure that the compiler doesn't try to reorder around atomic opsRich Felker2011-02-121-13/+13
|
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+110