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