SPARC: Local Executable (LE)
This code sequence implements the LE
model described in Thread-Local Storage Access Models.
Table 16-6 SPARC: Local Executable Thread-Local Variable Access Codes
Code Sequence |
Initial Relocations |
Symbol |
# %g7 - thread pointer 0x00 sethi %hix(@tpoff(x)), %o0 0x04 xor %o0,%lo(@tpoff(x)),%o0 0x08 add %g7, %o0, %o0 # %o0 - contains address of TLS variable |
R_SPARC_TLS_LE_HIX22 R_SPARC_TLS_LE_LOX10 <none> |
x x |
The sethi
and xor
instructions generate R_SPARC_TLS_LE_HIX22
and R_SPARC_TLS_LE_LOX10
relocations respectively. The link-editor binds these relocations directly to the static TLS offset for the symbol defined in the executable. No relocation processing is required at runtime.