重定位说明符
在符号名称或 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 重定位说明符,但提供这些说明符是为了实现完整性。