diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-01-30 04:02:47 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-01-30 04:02:47 +0000 |
commit | 2c9ed5d050b5c57bfed35bd82c23f46c714d10c0 (patch) | |
tree | f6f3cffacae3d7b2a3597f3756f89ce97481c48b /include | |
parent | 4747d6b0a50fe9fd22c03d10d72a748bef3edb58 (diff) | |
download | llvm-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.h | 1 | ||||
-rw-r--r-- | include/llvm/MC/MCStreamer.h | 3 |
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 |