ARMTargetObjectFile.h revision 36b56886974eae4f9c5ebc96befd3e7bfe5de338
1//===-- llvm/Target/ARMTargetObjectFile.h - ARM Object Info -----*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLVM_TARGET_ARM_TARGETOBJECTFILE_H
11#define LLVM_TARGET_ARM_TARGETOBJECTFILE_H
12
13#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
14
15namespace llvm {
16
17class MCContext;
18class TargetMachine;
19
20class ARMElfTargetObjectFile : public TargetLoweringObjectFileELF {
21protected:
22  const MCSection *AttributesSection;
23public:
24  ARMElfTargetObjectFile() :
25    TargetLoweringObjectFileELF(),
26    AttributesSection(NULL)
27  {}
28
29  void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
30
31  const MCExpr *
32  getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding,
33                          Mangler &Mang, const TargetMachine &TM,
34                          MachineModuleInfo *MMI,
35                          MCStreamer &Streamer) const override;
36
37  /// \brief Describe a TLS variable address within debug info.
38  const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override;
39};
40
41} // end namespace llvm
42
43#endif
44