inline cp15 thread pointer load in arm dynamic TLSDESC asm when possible
authorRich Felker <dalias@aerifal.cx>
Mon, 1 Oct 2018 23:36:14 +0000 (19:36 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 1 Oct 2018 23:39:24 +0000 (19:39 -0400)
commit7bf773a8f9b97875ba67b646c1681ac5ca22016f
tree5647df1752aef1f7e862c54a4ff7e494defc32bd
parent0beb9dfbecad38af9759b1e83eeb007e28b70abb
inline cp15 thread pointer load in arm dynamic TLSDESC asm when possible

the indirect function call is a significant portion of the code path
for the dynamic case, and most users are probably building for ISA
levels where it can be omitted.

we could drop at least one register save/restore (lr) with this
change, and possibly another (ip) with some clever shuffling, but it's
not clear whether there's a way to do it that's not more expensive, or
whether avoiding the save/restore would have any practical effect, so
in the interest of avoiding complexity it's omitted for now.
src/ldso/arm/tlsdesc.S