此代码序列实现线程局部存储的访问模型中介绍的 LE 模型。
代码序列
初始重定位
符号
# %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
sethi 和 xor 指令分别生成 R_SPARC_TLS_LE_HIX22 和 R_SPARC_TLS_LE_LOX10 重定位。链接编辑器将这些重定位直接绑定到在可执行文件中定义的符号的静态 TLS 偏移。在运行时不需要进行重定位处理。