Home | History | Annotate | Download | only in ARM
      1 //===-- llvm/Target/ARMTargetObjectFile.cpp - ARM Object Info Impl --------===//
      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 #include "ARMTargetObjectFile.h"
     11 #include "ARMSubtarget.h"
     12 #include "llvm/MC/MCContext.h"
     13 #include "llvm/MC/MCSectionELF.h"
     14 #include "llvm/Support/Dwarf.h"
     15 #include "llvm/Support/ELF.h"
     16 #include "llvm/Target/TargetMachine.h"
     17 #include "llvm/ADT/StringExtras.h"
     18 using namespace llvm;
     19 using namespace dwarf;
     20 
     21 //===----------------------------------------------------------------------===//
     22 //                               ELF Target
     23 //===----------------------------------------------------------------------===//
     24 
     25 void ARMElfTargetObjectFile::Initialize(MCContext &Ctx,
     26                                         const TargetMachine &TM) {
     27   bool isAAPCS_ABI = TM.getSubtarget<ARMSubtarget>().isAAPCS_ABI();
     28   TargetLoweringObjectFileELF::Initialize(Ctx, TM);
     29   InitializeELF(isAAPCS_ABI);
     30 
     31   if (isAAPCS_ABI) {
     32     LSDASection = NULL;
     33   }
     34 
     35   AttributesSection =
     36     getContext().getELFSection(".ARM.attributes",
     37                                ELF::SHT_ARM_ATTRIBUTES,
     38                                0,
     39                                SectionKind::getMetadata());
     40 }
     41