次の表に、x64 用に定義された TLS 再配置を示します。表内の説明では、次の表記が使用されています。
TLS_index 構造体を保持するために、GOT 内に連続した 2 つのエントリを割り当てます。この構造体は、__tls_get_addr() に渡されます。この命令は、正確で一般的な動的コードシーケンス内でのみ使用できます。
TLS_index 構造体を保持するために、GOT 内に連続した 2 つのエントリを割り当てます。この構造体は、__tls_get_addr() に渡されます。実行時、オブジェクトの ti_offset オフセットフィールドは ゼロに設定され、ti_module オフセットは初期化されます。__tls_get_addr() 関数の呼び出しは、動的な TLS ブロックの開始オフセットを返します。この命令は、正確なコードシーケンス内で使用できます。
変数を含む TLS ブロックの最初からの変数の相対オフセットを計算します。計算値は加数の即値として使用され、特定のレジスタには関連付けられません。
TLS シンボルを含むオブジェクトの識別子を計算します。
最初の TLS ブロック内の変数のオフセットを保持する GOT 内のエントリを割り当てます。このオフセットは TLS ブロックの端、%fs:0 から計算されます。この演算子は、movq または addq 命令とだけ使用できます。
TLS ブロックの端、%fs:0 からの変数の相対オフセットを計算します。GOT エントリは作成されません。
| 名前 | 値 | フィールド | 計算 | 
|---|---|---|---|
| R_AMD64_DPTMOD64 | 16 | Word64 | @dtpmod(s) | 
| R_AMD64_DTPOFF64 | 17 | Word64 | @dtpoff(s) | 
| R_AMD64_TPOFF64 | 18 | Word64 | @tpoff(s) | 
| R_AMD64_TLSGD | 19 | Word32 | @tlsgd(s) | 
| R_AMD64_TLSLD | 20 | Word32 | @tlsld(s) | 
| R_AMD64_DTPOFF32 | 21 | Word32 | @dtpoff(s) | 
| R_AMD64_GOTTPOFF | 22 | Word32 | @gottpoff(s) | 
| R_AMD64_TPOFF32 | 23 | Word32 | @gottpoff(s) |