@@ -1452,35 +1452,35 @@ Thread-local storage descriptors
14521452
14531453.. table :: TLS descriptor relocations
14541454
1455- +------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1456- | ELF64 Code | ELF32 Code | Name | Operation | Comment |
1457- +============+============+=================================+==================================+==============================================================================================+
1455+ +------------+------------+---------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------- +
1456+ | ELF64 Code | ELF32 Code | Name | Operation | Comment |
1457+ +============+============+=================================+==================================+======================================================================================================= +
14581458 | 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- +------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
1459+ +------------+------------+---------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------- +
14601460 | 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- +------------+------------+---------------------------------+----------------------------------+----------------------------------------------------------------------------------------------+
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+ +------------+------------+---------------------------------+----------------------------------+------------------------------------------------------------------------------------------------------- +
14841484
14851485
14861486.. note ::
0 commit comments