forked from OSchip/llvm-project
[MC] Rename TLSCALL as it's not ARM specific.
`MCSymbolRefExpr` variant kind for TLSCALL is prefixed with _ARM_ since this is how it was originally implemented. The X86_64 version is exactly the same so there's no reason to create a new variant, we can just rename the existing one to be machine-independent. This generalization is the first step to implement support for GNU2 TLS dialect in MC. Differential Revision: http://reviews.llvm.org/D18160 llvm-svn: 263515
This commit is contained in:
parent
a0d29406cb
commit
249c45d92e
|
@ -177,6 +177,7 @@ public:
|
|||
VK_TLSLDM,
|
||||
VK_TPOFF,
|
||||
VK_DTPOFF,
|
||||
VK_TLSCALL, // symbol(tlscall)
|
||||
VK_TLVP, // Mach-O thread local variable relocations
|
||||
VK_TLVPPAGE,
|
||||
VK_TLVPPAGEOFF,
|
||||
|
@ -195,7 +196,6 @@ public:
|
|||
VK_ARM_PREL31,
|
||||
VK_ARM_SBREL, // symbol(sbrel)
|
||||
VK_ARM_TLSLDO, // symbol(tlsldo)
|
||||
VK_ARM_TLSCALL, // symbol(tlscall)
|
||||
VK_ARM_TLSDESC, // symbol(tlsdesc)
|
||||
VK_ARM_TLSDESCSEQ,
|
||||
|
||||
|
|
|
@ -194,6 +194,7 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||
case VK_TLSLDM: return "TLSLDM";
|
||||
case VK_TPOFF: return "TPOFF";
|
||||
case VK_TPREL: return "TPREL";
|
||||
case VK_TLSCALL: return "tlscall";
|
||||
case VK_TLVP: return "TLVP";
|
||||
case VK_TLVPPAGE: return "TLVPPAGE";
|
||||
case VK_TLVPPAGEOFF: return "TLVPPAGEOFF";
|
||||
|
@ -211,7 +212,6 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||
case VK_ARM_PREL31: return "prel31";
|
||||
case VK_ARM_SBREL: return "sbrel";
|
||||
case VK_ARM_TLSLDO: return "tlsldo";
|
||||
case VK_ARM_TLSCALL: return "tlscall";
|
||||
case VK_ARM_TLSDESC: return "tlsdesc";
|
||||
case VK_ARM_TLSDESCSEQ: return "tlsdescseq";
|
||||
case VK_PPC_LO: return "l";
|
||||
|
@ -320,6 +320,7 @@ MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
|||
.Case("ntpoff", VK_NTPOFF)
|
||||
.Case("gotntpoff", VK_GOTNTPOFF)
|
||||
.Case("plt", VK_PLT)
|
||||
.Case("tlscall", VK_TLSCALL)
|
||||
.Case("tlsgd", VK_TLSGD)
|
||||
.Case("tlsld", VK_TLSLD)
|
||||
.Case("tlsldm", VK_TLSLDM)
|
||||
|
@ -397,7 +398,6 @@ MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
|||
.Case("prel31", VK_ARM_PREL31)
|
||||
.Case("sbrel", VK_ARM_SBREL)
|
||||
.Case("tlsldo", VK_ARM_TLSLDO)
|
||||
.Case("tlscall", VK_ARM_TLSCALL)
|
||||
.Case("tlsdesc", VK_ARM_TLSDESC)
|
||||
.Default(VK_Invalid);
|
||||
}
|
||||
|
|
|
@ -458,7 +458,7 @@ unsigned ARMAsmBackend::adjustFixupValue(const MCFixup &Fixup, uint64_t Value,
|
|||
// Offset by 8 just as above.
|
||||
if (const MCSymbolRefExpr *SRE =
|
||||
dyn_cast<MCSymbolRefExpr>(Fixup.getValue()))
|
||||
if (SRE->getKind() == MCSymbolRefExpr::VK_ARM_TLSCALL)
|
||||
if (SRE->getKind() == MCSymbolRefExpr::VK_TLSCALL)
|
||||
return 0;
|
||||
return 0xffffff & ((Value - 8) >> 2);
|
||||
case ARM::fixup_t2_uncondbranch: {
|
||||
|
@ -536,7 +536,7 @@ unsigned ARMAsmBackend::adjustFixupValue(const MCFixup &Fixup, uint64_t Value,
|
|||
uint32_t offset = (Value - 2) >> 2;
|
||||
if (const MCSymbolRefExpr *SRE =
|
||||
dyn_cast<MCSymbolRefExpr>(Fixup.getValue()))
|
||||
if (SRE->getKind() == MCSymbolRefExpr::VK_ARM_TLSCALL)
|
||||
if (SRE->getKind() == MCSymbolRefExpr::VK_TLSCALL)
|
||||
offset = 0;
|
||||
uint32_t signBit = (offset & 0x400000) >> 22;
|
||||
uint32_t I1Bit = (offset & 0x200000) >> 21;
|
||||
|
|
|
@ -109,7 +109,7 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target,
|
|||
case MCSymbolRefExpr::VK_PLT:
|
||||
Type = ELF::R_ARM_CALL;
|
||||
break;
|
||||
case MCSymbolRefExpr::VK_ARM_TLSCALL:
|
||||
case MCSymbolRefExpr::VK_TLSCALL:
|
||||
Type = ELF::R_ARM_TLS_CALL;
|
||||
break;
|
||||
default:
|
||||
|
@ -141,7 +141,7 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target,
|
|||
case ARM::fixup_arm_thumb_bl:
|
||||
case ARM::fixup_arm_thumb_blx:
|
||||
switch (Modifier) {
|
||||
case MCSymbolRefExpr::VK_ARM_TLSCALL:
|
||||
case MCSymbolRefExpr::VK_TLSCALL:
|
||||
Type = ELF::R_ARM_THM_TLS_CALL;
|
||||
break;
|
||||
default:
|
||||
|
@ -213,7 +213,7 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target,
|
|||
case MCSymbolRefExpr::VK_ARM_TLSLDO:
|
||||
Type = ELF::R_ARM_TLS_LDO32;
|
||||
break;
|
||||
case MCSymbolRefExpr::VK_ARM_TLSCALL:
|
||||
case MCSymbolRefExpr::VK_TLSCALL:
|
||||
Type = ELF::R_ARM_TLS_CALL;
|
||||
break;
|
||||
case MCSymbolRefExpr::VK_ARM_TLSDESC:
|
||||
|
|
Loading…
Reference in New Issue