summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-01-30 04:02:47 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-01-30 04:02:47 +0000
commit2c9ed5d050b5c57bfed35bd82c23f46c714d10c0 (patch)
treef6f3cffacae3d7b2a3597f3756f89ce97481c48b /include
parent4747d6b0a50fe9fd22c03d10d72a748bef3edb58 (diff)
downloadllvm-2c9ed5d050b5c57bfed35bd82c23f46c714d10c0.tar.gz
llvm-2c9ed5d050b5c57bfed35bd82c23f46c714d10c0.tar.bz2
llvm-2c9ed5d050b5c57bfed35bd82c23f46c714d10c0.tar.xz
ARM: suuport .tlsdescseq directive
This enhances the ARMAsmParser to handle .tlsdescseq directives. This is a slightly special relocation. We must be able to generate them, but not consume them in assembly. The relocation is meant to assist the linker in generating a TLS descriptor sequence. The ELF target streamer is enhanced to append additional fixups into the current segment and that is used to emit the new R_ARM_TLS_DESCSEQ relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200448 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/MC/MCExpr.h1
-rw-r--r--include/llvm/MC/MCStreamer.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/MC/MCExpr.h b/include/llvm/MC/MCExpr.h
index 13f3ad0570..133bd5280d 100644
--- a/include/llvm/MC/MCExpr.h
+++ b/include/llvm/MC/MCExpr.h
@@ -168,6 +168,7 @@ public:
VK_ARM_TLSLDO, // symbol(tlsldo)
VK_ARM_TLSCALL, // symbol(tlscall)
VK_ARM_TLSDESC, // symbol(tlsdesc)
+ VK_ARM_TLSDESCSEQ,
VK_PPC_LO, // symbol@l
VK_PPC_HI, // symbol@h
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
index 3eb5446f53..bb4adfcf86 100644
--- a/include/llvm/MC/MCStreamer.h
+++ b/include/llvm/MC/MCStreamer.h
@@ -33,6 +33,7 @@ class MCInstPrinter;
class MCSection;
class MCStreamer;
class MCSymbol;
+class MCSymbolRefExpr;
class MCSubtargetInfo;
class StringRef;
class Twine;
@@ -107,6 +108,8 @@ public:
virtual void emitArch(unsigned Arch) = 0;
virtual void finishAttributeSection() = 0;
virtual void emitInst(uint32_t Inst, char Suffix = '\0') = 0;
+
+ virtual void AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *SRE) = 0;
};
/// MCStreamer - Streaming machine code generation interface. This interface