diff options
| author | Tim Northover <tnorthover@apple.com> | 2014-04-30 16:13:26 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2014-04-30 16:13:26 +0000 |
| commit | 7346f062b639a20164f15da77f2989c22aca349b (patch) | |
| tree | 8b9fb9dbeb775078183caa2161c7613fbdbbeb94 /llvm/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp | |
| parent | b8fb7f41938a4c5635eba25762d1dd216986003b (diff) | |
| download | bcm5719-llvm-7346f062b639a20164f15da77f2989c22aca349b.tar.gz bcm5719-llvm-7346f062b639a20164f15da77f2989c22aca349b.zip | |
AArch64/ARM64: implement remaining TLS relocations (purely MC).
llvm-svn: 207668
Diffstat (limited to 'llvm/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp b/llvm/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp index b775dd332fe..0990a701bc8 100644 --- a/llvm/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp +++ b/llvm/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp @@ -103,15 +103,19 @@ unsigned ARM64ELFObjectWriter::GetRelocType(const MCValue &Target, case FK_Data_8: return ELF::R_AARCH64_ABS64; case ARM64::fixup_arm64_add_imm12: - if (SymLoc == ARM64MCExpr::VK_DTPREL && IsNC) + if (RefKind == ARM64MCExpr::VK_DTPREL_HI12) + return ELF::R_AARCH64_TLSLD_ADD_DTPREL_HI12; + if (RefKind == ARM64MCExpr::VK_TPREL_HI12) + return ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12; + if (RefKind == ARM64MCExpr::VK_DTPREL_LO12_NC) return ELF::R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC; - if (SymLoc == ARM64MCExpr::VK_DTPREL && !IsNC) + if (RefKind == ARM64MCExpr::VK_DTPREL_LO12) return ELF::R_AARCH64_TLSLD_ADD_DTPREL_LO12; - if (SymLoc == ARM64MCExpr::VK_TPREL && IsNC) + if (RefKind == ARM64MCExpr::VK_TPREL_LO12_NC) return ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC; - if (SymLoc == ARM64MCExpr::VK_TPREL && !IsNC) + if (RefKind == ARM64MCExpr::VK_TPREL_LO12) return ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12; - if (SymLoc == ARM64MCExpr::VK_TLSDESC && IsNC) + if (RefKind == ARM64MCExpr::VK_TLSDESC_LO12) return ELF::R_AARCH64_TLSDESC_ADD_LO12_NC; if (SymLoc == ARM64MCExpr::VK_ABS && IsNC) return ELF::R_AARCH64_ADD_ABS_LO12_NC; |

