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  virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
30
31  const MCExpr *
32  getTTypeGlobalReference(const GlobalValue *GV, Mangler *Mang,
33                          MachineModuleInfo *MMI, unsigned Encoding,
34                          MCStreamer &Streamer) const;
35
36  virtual const MCSection *getAttributesSection() const {
37    return AttributesSection;
38  }
39};
40
41} // end namespace llvm
42
43#endif
44