1 //===-- llvm/Target/ARMTargetObjectFile.h - ARM Object Info -----*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_TARGET_ARM_TARGETOBJECTFILE_H
11 #define LLVM_TARGET_ARM_TARGETOBJECTFILE_H
13 #include "llvm/Target/TargetLoweringObjectFile.h"
14 #include "llvm/MC/MCSectionELF.h"
18 class ARMElfTargetObjectFile
: public TargetLoweringObjectFileELF
{
20 ARMElfTargetObjectFile() : TargetLoweringObjectFileELF() {}
22 void Initialize(MCContext
&Ctx
, const TargetMachine
&TM
) {
23 TargetLoweringObjectFileELF::Initialize(Ctx
, TM
);
25 if (TM
.getSubtarget
<ARMSubtarget
>().isAAPCS_ABI()) {
27 getELFSection(".init_array", MCSectionELF::SHT_INIT_ARRAY
,
28 MCSectionELF::SHF_WRITE
| MCSectionELF::SHF_ALLOC
,
29 SectionKind::getDataRel());
31 getELFSection(".fini_array", MCSectionELF::SHT_FINI_ARRAY
,
32 MCSectionELF::SHF_WRITE
| MCSectionELF::SHF_ALLOC
,
33 SectionKind::getDataRel());
37 } // end namespace llvm