重定位说明符

在符号名称或 QualNames之后使用重定位说明符。

通常,汇编程序根据表达式类型和用法生成正确的重定位。 但是,在某些情况下,可能存在多种重定位类型,并且需要显式重定位说明符。

可以在符号名称或 QualNames之后使用显式重定位说明符。 它由 @ (at 符号) 字符和 1-或 2 字符的重定位类型组成。 可以使用大写字母或小写字母指定重定位类型,但不能混合大小写。

下表列出了有效的重定位类型:
类型 RLD 名称 用途
u R_TOCU 大型 TOC 重定位
l R_TOCL 大型 TOC 重定位
格德 R_TLS 线程-本地存储器
ie R_TLS_IE 线程-本地存储器
LE 请求 TLS_LE 线程-本地存储器
ld 请求 TLS_LD 线程-本地存储器
m R_TLSM 线程-本地存储器
ML R_TLSML 线程-本地存储器
tr R_TRL TOC 引用
TC R_TOC TOC 引用
p R_POS 常规

缺省情况下,大型 TOC 重定位类型与 XMC_TE 存储映射类配合使用,但当 TOC 相对指令与 XMC_TC 符号配合使用时,也可以使用这些类型。

线程本地存储器重定位类型通常与对线程本地符号的 TOC 引用配合使用。 缺省情况下,将使用 @gd 重定位说明符。 如果使用其他 TLS 访问方法,那么需要显式说明符。

@tr 重定位说明符允许 R_TRL 重定位类型与 TOC 相关装入配合使用。 此重定位类型可防止链接程序将装入指令转换为 "立即添加" 指令。

从不需要 @tc@p 重定位说明符,但提供这些说明符是为了实现完整性。