diff options
author | Feng Zou <feng.zou@intel.com> | 2024-12-05 16:26:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-05 16:26:26 +0800 |
commit | 636beb6a2833ee0290935f679252c1b662721b31 (patch) | |
tree | 16d5fece787e54671a1f302040a1032a861b84d5 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | a9a4a83b6132f076fd14ac31268deaa4bf1381d5 (diff) | |
download | llvm-636beb6a2833ee0290935f679252c1b662721b31.zip llvm-636beb6a2833ee0290935f679252c1b662721b31.tar.gz llvm-636beb6a2833ee0290935f679252c1b662721b31.tar.bz2 |
[X86][LLD] Handle R_X86_64_CODE_6_GOTTPOFF relocation type (#117675)
For
add %reg1, name@GOTTPOFF(%rip), %reg2
add name@GOTTPOFF(%rip), %reg1, %reg2
{nf} add %reg1, name@GOTTPOFF(%rip), %reg2
{nf} add name@GOTTPOFF(%rip), %reg1, %reg2
{nf} add name@GOTTPOFF(%rip), %reg
add
R_X86_64_CODE_6_GOTTPOFF = 50
in #117277.
Linker can treat R_X86_64_CODE_6_GOTTPOFF as R_X86_64_GOTTPOFF or
convert the instructions above to
add $name@tpoff, %reg1, %reg2
add $name@tpoff, %reg1, %reg2
{nf} add $name@tpoff, %reg1, %reg2
{nf} add $name@tpoff, %reg1, %reg2
{nf} add $name@tpoff, %reg
if the first byte of the instruction at the relocation offset - 6 is
0x62 (namely, encoded w/EVEX prefix) when possible.
Binutils patch: bminor/binutils-gdb@5bc71c2
Binutils mailthread:
https://sourceware.org/pipermail/binutils/2024-February/132351.html
ABI discussion:
https://groups.google.com/g/x86-64-abi/c/FhEZjCtDLFw/m/VHDjN4orAgAJ
Blog: https://kanrobert.github.io/rfc/All-about-APX-relocation
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions