This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: alpha tls support


Doh.  Forgot the user documentation update.


r~


        * doc/c-alpha.texi: Add docs for tls relocations.

Index: doc/c-alpha.texi
===================================================================
RCS file: /cvs/src/src/gas/doc/c-alpha.texi,v
retrieving revision 1.1
diff -c -p -d -r1.1 c-alpha.texi
*** doc/c-alpha.texi	10 Feb 2002 23:25:17 -0000	1.1
--- doc/c-alpha.texi	30 May 2002 22:33:54 -0000
*************** beq  $27,is_undef   !lituse_addr!1
*** 216,221 ****
--- 216,234 ----
  jsr  $26,($27),foo  !lituse_jsr!1
  @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}
  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
*************** target address.  The referenced symbol m
*** 248,253 ****
--- 261,307 ----
  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
  @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
  
  @node Alpha Floating Point


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]