Skip to content

Commit 6718717

Browse files
pratlucasstuij
authored andcommitted
[aaelf64] Avoid extending columns of TLS descriptor relocations table
1 parent db81b81 commit 6718717

File tree

1 file changed

+30
-29
lines changed

1 file changed

+30
-29
lines changed

aaelf64/aaelf64.rst

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1452,35 +1452,36 @@ Thread-local storage descriptors
14521452

14531453
.. table:: TLS descriptor relocations
14541454

1455-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1456-
| ELF64 Code | ELF32 Code | Name | Operation | Comment |
1457-
+============+============+=================================+==================================+=======================================================================================================+
1458-
| 560 | 122 | R\_<CLS>\_TLSDESC\_ LD\_PREL19 | G(GTLSDESC(S+A)) - P | Set a load-literal immediate to bits [20:2]; check -2\ :sup:`20` <= X < 2\ :sup:`20`; check X & 3 = 0.|
1459-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1460-
| 561 | 123 | R\_<CLS>\_TLSDESC\_ ADR\_PREL21 | G(GTLSDESC(S+A) - P | Set an ADR immediate field to bits [20:0]; check -2\ :sup:`20` <= X < 2\ :sup:`20`. |
1461-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1462-
| 562 | 124 | R\_<CLS>\_TLSDESC\_ ADR\_PAGE21 | Page(G(GTLSDESC(S+A))) - Page(P) | Set an ADRP immediate field to bits [32:12] of X; check -2\ :sup:`32` <= X < 2\ :sup:`32`. |
1463-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1464-
| 563 | \- | R\_<CLS>\_TLSDESC\_ LD64\_LO12 | G(GTLSDESC(S+A)) | Set an LD offset field to bits [11:3] of X. No overflow check; check X & 7 = 0. |
1465-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1466-
| \- | 125 | R\_<CLS>\_TLSDESC\_ LD32\_LO12 | G(GTLSDESC(S+A)) | Set an LD offset field to bits [11:2] of X. No overflow check; check X & 3 = 0. |
1467-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1468-
| 564 | 126 | R\_<CLS>\_TLSDESC\_ ADD\_LO12 | G(GTLSDESC(S+A)) | Set an ADD immediate field to bits [11:0] of X. No overflow check. |
1469-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1470-
| 565 | \- | R\_<CLS>\_TLSDESC\_ OFF\_G1 | G(GTLSDESC(S+A)) - GOT | Set a MOV[NZ] immediate field to bits [31:16] of X; check -2\ :sup:`32` <= X < 2\ :sup:`32`. |
1471-
| | | | | See notes below. |
1472-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1473-
| 566 | \- | R\_<CLS>\_TLSDESC\_ OFF\_G0\_NC | G(GTLSDESC(S+A)) - GOT | Set a MOVK immediate field to bits [15:0] of X. No overflow check. |
1474-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1475-
| 567 | \- | R\_<CLS>\_TLSDESC\_ LDR | None | For relaxation only. Must be used to identify an LDR instruction which loads the TLS |
1476-
| | | | | descriptor function pointer for S + A if it has no other relocation. |
1477-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1478-
| 568 | \- | R\_<CLS>\_TLSDESC\_ ADD | None | For relaxation only. Must be used to identify an ADD instruction which computes the |
1479-
| | | | | address of the TLS Descriptor for S + A if it has no other relocation. |
1480-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1481-
| 569 | 127 | R\_<CLS>\_TLSDESC\_ CALL | None | For relaxation only. Must be used to identify a BLR instruction which performs an indirect |
1482-
| | | | | call to the TLS descriptor function for S + A. |
1483-
+------------+------------+---------------------------------+----------------------------------+-------------------------------------------------------------------------------------------------------+
1455+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1456+
| ELF64 Code | ELF32 Code | Name | Operation | Comment |
1457+
+============+============+=================================+==================================+==============================================================================================+
1458+
| 560 | 122 | R\_<CLS>\_TLSDESC\_ LD\_PREL19 | G(GTLSDESC(S+A)) - P | Set a load-literal immediate to bits [20:2]; check -2\ :sup:`20` <= X < 2\ :sup:`20`; check |
1459+
| | | | | X & 3 = 0. |
1460+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1461+
| 561 | 123 | R\_<CLS>\_TLSDESC\_ ADR\_PREL21 | G(GTLSDESC(S+A) - P | Set an ADR immediate field to bits [20:0]; check -2\ :sup:`20` <= X < 2\ :sup:`20`. |
1462+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1463+
| 562 | 124 | R\_<CLS>\_TLSDESC\_ ADR\_PAGE21 | Page(G(GTLSDESC(S+A))) - Page(P) | Set an ADRP immediate field to bits [32:12] of X; check -2\ :sup:`32` <= X < 2\ :sup:`32`. |
1464+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1465+
| 563 | \- | R\_<CLS>\_TLSDESC\_ LD64\_LO12 | G(GTLSDESC(S+A)) | Set an LD offset field to bits [11:3] of X. No overflow check; check X & 7 = 0. |
1466+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1467+
| \- | 125 | R\_<CLS>\_TLSDESC\_ LD32\_LO12 | G(GTLSDESC(S+A)) | Set an LD offset field to bits [11:2] of X. No overflow check; check X & 3 = 0. |
1468+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1469+
| 564 | 126 | R\_<CLS>\_TLSDESC\_ ADD\_LO12 | G(GTLSDESC(S+A)) | Set an ADD immediate field to bits [11:0] of X. No overflow check. |
1470+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1471+
| 565 | \- | R\_<CLS>\_TLSDESC\_ OFF\_G1 | G(GTLSDESC(S+A)) - GOT | Set a MOV[NZ] immediate field to bits [31:16] of X; check -2\ :sup:`32` <= X < 2\ :sup:`32`. |
1472+
| | | | | See notes below. |
1473+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1474+
| 566 | \- | R\_<CLS>\_TLSDESC\_ OFF\_G0\_NC | G(GTLSDESC(S+A)) - GOT | Set a MOVK immediate field to bits [15:0] of X. No overflow check. |
1475+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1476+
| 567 | \- | R\_<CLS>\_TLSDESC\_ LDR | None | For relaxation only. Must be used to identify an LDR instruction which loads the TLS |
1477+
| | | | | descriptor function pointer for S + A if it has no other relocation. |
1478+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1479+
| 568 | \- | R\_<CLS>\_TLSDESC\_ ADD | None | For relaxation only. Must be used to identify an ADD instruction which computes the |
1480+
| | | | | address of the TLS Descriptor for S + A if it has no other relocation. |
1481+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1482+
| 569 | 127 | R\_<CLS>\_TLSDESC\_ CALL | None | For relaxation only. Must be used to identify a BLR instruction which performs an indirect |
1483+
| | | | | call to the TLS descriptor function for S + A. |
1484+
+------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
14841485

14851486

14861487
.. note::

0 commit comments

Comments
 (0)