mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +08:00
* doc/c-alpha.texi: Add docs for tls relocations.
This commit is contained in:
@ -23,6 +23,8 @@
|
|||||||
(emit_insn): Handle TLS relocations.
|
(emit_insn): Handle TLS relocations.
|
||||||
(ldX_op): Remove.
|
(ldX_op): Remove.
|
||||||
|
|
||||||
|
* doc/c-alpha.texi: Add docs for tls relocations.
|
||||||
|
|
||||||
2002-05-30 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
2002-05-30 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||||
|
|
||||||
* config/tc-mips.c (mips_gprel_offset): New variable.
|
* config/tc-mips.c (mips_gprel_offset): New variable.
|
||||||
|
@ -216,6 +216,19 @@ beq $27,is_undef !lituse_addr!1
|
|||||||
jsr $26,($27),foo !lituse_jsr!1
|
jsr $26,($27),foo !lituse_jsr!1
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@item !lituse_tlsgd!@var{N}
|
||||||
|
Used with a register branch format instruction to indicate that the
|
||||||
|
literal is the call to @code{__tls_get_addr} used to compute the
|
||||||
|
address of the thread-local storage variable whose descriptor was
|
||||||
|
loaded with @code{!tlsgd!@var{N}}.
|
||||||
|
|
||||||
|
@item !lituse_tlsldm!@var{N}
|
||||||
|
Used with a register branch format instruction to indicate that the
|
||||||
|
literal is the call to @code{__tls_get_addr} used to compute the
|
||||||
|
address of the base of the thread-local storage block for the current
|
||||||
|
module. The descriptor for the module must have been loaded with
|
||||||
|
@code{!tlsldm!@var{N}}.
|
||||||
|
|
||||||
@item !gpdisp!@var{N}
|
@item !gpdisp!@var{N}
|
||||||
Used with @code{ldah} and @code{lda} to load the GP from the current
|
Used with @code{ldah} and @code{lda} to load the GP from the current
|
||||||
address, a-la the @code{ldgp} macro. The source register for the
|
address, a-la the @code{ldgp} macro. The source register for the
|
||||||
@ -248,6 +261,47 @@ target address. The referenced symbol must have the same GP as the
|
|||||||
source object file, and it must be declared to either not use @code{$27}
|
source object file, and it must be declared to either not use @code{$27}
|
||||||
or perform a standard GP load in the first two instructions via the
|
or perform a standard GP load in the first two instructions via the
|
||||||
@code{.prologue} directive.
|
@code{.prologue} directive.
|
||||||
|
|
||||||
|
@item !tlsgd
|
||||||
|
@itemx !tlsgd!@var{N}
|
||||||
|
Used with an @code{lda} instruction to load the address of a TLS
|
||||||
|
descriptor for a symbol in the GOT.
|
||||||
|
|
||||||
|
The sequence number @var{N} is optional, and if present it used to
|
||||||
|
pair the descriptor load with both the @code{literal} loading the
|
||||||
|
address of the @code{__tls_get_addr} function and the @code{lituse_tlsgd}
|
||||||
|
marking the call to that function.
|
||||||
|
|
||||||
|
For proper relaxation, both the @code{tlsgd}, @code{literal} and
|
||||||
|
@code{lituse} relocations must be in the same extended basic block.
|
||||||
|
That is, the relocation with the lowest address must be executed
|
||||||
|
first at runtime.
|
||||||
|
|
||||||
|
@item !tlsldm
|
||||||
|
@itemx !tlsldm!@var{N}
|
||||||
|
Used with an @code{lda} instruction to load the address of a TLS
|
||||||
|
descriptor for the current module in the GOT.
|
||||||
|
|
||||||
|
Similar in other respects to @code{tlsgd}.
|
||||||
|
|
||||||
|
@item !gotdtprel
|
||||||
|
Used with an @code{ldq} instruction to load the offset of the TLS
|
||||||
|
symbol within its module's thread-local storage block. Also known
|
||||||
|
as the dynamic thread pointer offset or dtp-relative offset.
|
||||||
|
|
||||||
|
@item !dtprelhi
|
||||||
|
@itemx !dtprello
|
||||||
|
@itemx !dtprel
|
||||||
|
Like @code{gprel} relocations except they compute dtp-relative offsets.
|
||||||
|
|
||||||
|
@item !gottprel
|
||||||
|
Used with an @code{ldq} instruction to load the offset of the TLS
|
||||||
|
symbol from the thread pointer. Also known as the tp-relative offset.
|
||||||
|
|
||||||
|
@item !tprelhi
|
||||||
|
@itemx !tprello
|
||||||
|
@itemx !tprel
|
||||||
|
Like @code{gprel} relocations except they compute tp-relative offsets.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@node Alpha Floating Point
|
@node Alpha Floating Point
|
||||||
|
Reference in New Issue
Block a user