Commit 1ed7570
committed
[sysvabi64] document TLSDESC resolver extension register reqs
Document the decision in the GCC mailing list thread
TLSDESC clobber ABI stability/futureproofness?
https://gcc.gnu.org/legacy-ml/gcc/2018-10/msg00112.html
TLSDESC resolver functions assume that any registers added
by an extension are caller saved for a TLSDESC call.
A brief summary:
Dynamic TLS may be lazy allocated upon the first use of a TLSDESC
resolver. This may involve calls to heap allocation functions
provided by the user, which may use registers from extensions
like SVE and SME. As the resolver function can't know what is
saved it would have to save all SVE and SME state. This would
be way more expensive than a caller save, and an older libc
written prior to the introduction of the extension would be
unaware of them so the caller has to do the save.
* The SVE and SME state is already1 parent 4c1b198 commit 1ed7570
1 file changed
+10
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| |||
243 | 244 | | |
244 | 245 | | |
245 | 246 | | |
| 247 | + | |
| 248 | + | |
246 | 249 | | |
247 | 250 | | |
248 | 251 | | |
| |||
2364 | 2367 | | |
2365 | 2368 | | |
2366 | 2369 | | |
2367 | | - | |
2368 | | - | |
| 2370 | + | |
| 2371 | + | |
| 2372 | + | |
| 2373 | + | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
2369 | 2377 | | |
2370 | 2378 | | |
2371 | 2379 | | |
| |||
0 commit comments