musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src/internal/atomic.h
AgeCommit message (Collapse)AuthorLines
2024年03月02日add missing inline keyword on default a_barrier definition Rich Felker-1/+1
this is not needed, but may act as a hint to the compiler, and also serves to suppress unused function warnings if enabled (on by default since commit 86ac0f794731f03dfff40ee843ff9e2752945d5e).
2020年07月05日fix C implementation of a_clz_32 Rich Felker-1/+1
this broke mallocng size_to_class on archs without a native implementation of a_clz_32. the incorrect logic seems to have been something i derived from a related but distinct log2-type operation. with the change made here, it passes an exhaustive test. as this function is new and presently only used by mallocng, no other functionality was affected.
2020年06月11日add fallback a_clz_32 implementation Rich Felker-0/+15
some archs already have a_clz_32, used to provide a_ctz_32, but it hasn't been mandatory because it's not used anywhere yet. mallocng will need it, however, so add it now. it should probably be optimized better, but doesn't seem to make a difference at present.
2018年04月19日remove a_ctz_l from arch specific atomic_arch.h Andre 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月29日add a_clz_64 helper function Szabolcs 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月23日allow implementing a_cas_p with pointer-sized ll/sc Bobby 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月21日refactor internal atomic.h Rich 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月15日move arch-specific internal headers into place Rich Felker-110/+0
2011年02月12日ensure that the compiler doesn't try to reorder around atomic ops Rich Felker-13/+13
2011年02月12日initial check-in, version 0.5.0 v0.5.0 Rich Felker-0/+110
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月13日 10:34:46 +0000

AltStyle によって変換されたページ (->オリジナル) /