diff options
author | Szabolcs Nagy <nsz@port70.net> | 2018-08-24 23:11:59 +0000 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-08-28 17:08:14 -0400 |
commit | 056f9d818eaf1dbe9e9d63b64b109fd9b608fa36 (patch) | |
tree | c6b94b438e17f8618275279f62fc56c30052408a /src/thread/call_once.c | |
parent | cdbbcfb8f5d748f17694a5cc404af4b9381ff95f (diff) | |
download | musl-056f9d818eaf1dbe9e9d63b64b109fd9b608fa36.tar.gz musl-056f9d818eaf1dbe9e9d63b64b109fd9b608fa36.tar.xz musl-056f9d818eaf1dbe9e9d63b64b109fd9b608fa36.zip |
rewrite __aeabi_read_tp in asm
__aeabi_read_tp used to call c code, but that was incorrect as the arm runtime abi specifies special pcs for this function: it is only allowed to clobber r0, ip, lr and cpsr. maintainer's note: the old code explicitly saved and restored all general-purpose registers which are call-clobbered in the normal calling convention, so it's unlikely that any real-world compilers produced code that could break. however theoretically they could have chosen to use floating point registers, in which case the caller's values of those registers would be clobbered.
Diffstat (limited to 'src/thread/call_once.c')
0 files changed, 0 insertions, 0 deletions