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/linux/cache.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2019年05月26日 19:27:20 -0400
committerRich Felker <dalias@aerifal.cx>2019年05月26日 19:27:20 -0400
commit5fc43798250255455e4b5f9b08000bd3102274d9 (patch)
tree599d42aaa96840b30de808e67f4fc5cbaa2f55b3 /src/linux/cache.c
parentac304227bb3ea1787d581f17d76a5f5f3abff51f (diff)
downloadmusl-5fc43798250255455e4b5f9b08000bd3102274d9.tar.gz
optimize aarch64 dynamic tlsdesc function to spill fewer registers
with the glibc generation counter model for reusing dynamic tls slots after dlclose, it's really not possible to get away with fewer than 4 working registers. for us however it's always been possible, but tricky, and only became apparent after the switch to installing new dynamic tls at dlopen time. by merging the negated thread pointer into the addend early, the register holding the thread pointer can immediately be reused, bringing the working register count down to three. this allows saving/restoring via a single stp/ldp pair, since the return register x0 does not need to be saved. net reduction of 3 instructions, 2 of which were push/pop.
Diffstat (limited to 'src/linux/cache.c')
0 files changed, 0 insertions, 0 deletions
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月17日 09:42:31 +0000

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