1dff0c46cSDimitry Andric //===-- XCoreTargetObjectFile.h - XCore Object Info -------------*- C++ -*-===//
2f22ef01cSRoman Divacky //
3f22ef01cSRoman Divacky //                     The LLVM Compiler Infrastructure
4f22ef01cSRoman Divacky //
5f22ef01cSRoman Divacky // This file is distributed under the University of Illinois Open Source
6f22ef01cSRoman Divacky // License. See LICENSE.TXT for details.
7f22ef01cSRoman Divacky //
8f22ef01cSRoman Divacky //===----------------------------------------------------------------------===//
9f22ef01cSRoman Divacky 
1039d628a0SDimitry Andric #ifndef LLVM_LIB_TARGET_XCORE_XCORETARGETOBJECTFILE_H
1139d628a0SDimitry Andric #define LLVM_LIB_TARGET_XCORE_XCORETARGETOBJECTFILE_H
12f22ef01cSRoman Divacky 
13f22ef01cSRoman Divacky #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
14f22ef01cSRoman Divacky 
15f22ef01cSRoman Divacky namespace llvm {
16f22ef01cSRoman Divacky 
1791bc56edSDimitry Andric static const unsigned CodeModelLargeSize = 256;
18f22ef01cSRoman Divacky 
1991bc56edSDimitry Andric   class XCoreTargetObjectFile : public TargetLoweringObjectFileELF {
20ff0cc061SDimitry Andric     MCSection *BSSSectionLarge;
21ff0cc061SDimitry Andric     MCSection *DataSectionLarge;
22ff0cc061SDimitry Andric     MCSection *ReadOnlySectionLarge;
23ff0cc061SDimitry Andric     MCSection *DataRelROSectionLarge;
24ff0cc061SDimitry Andric 
2591bc56edSDimitry Andric   public:
2691bc56edSDimitry Andric     void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
2791bc56edSDimitry Andric 
28*d88c1a5aSDimitry Andric     MCSection *getExplicitSectionGlobal(const GlobalObject *GO, SectionKind Kind,
2991bc56edSDimitry Andric                                         const TargetMachine &TM) const override;
3091bc56edSDimitry Andric 
31*d88c1a5aSDimitry Andric     MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind,
32ff0cc061SDimitry Andric                                       const TargetMachine &TM) const override;
33ff0cc061SDimitry Andric 
347d523365SDimitry Andric     MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind,
353ca95b02SDimitry Andric                                      const Constant *C,
363ca95b02SDimitry Andric                                      unsigned &Align) const override;
37f22ef01cSRoman Divacky   };
38f22ef01cSRoman Divacky } // end namespace llvm
39f22ef01cSRoman Divacky 
40f22ef01cSRoman Divacky #endif
41