106f32e7eSjoerg //===-- XCoreTargetObjectFile.h - XCore Object Info -------------*- C++ -*-===// 206f32e7eSjoerg // 306f32e7eSjoerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 406f32e7eSjoerg // See https://llvm.org/LICENSE.txt for license information. 506f32e7eSjoerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 606f32e7eSjoerg // 706f32e7eSjoerg //===----------------------------------------------------------------------===// 806f32e7eSjoerg 906f32e7eSjoerg #ifndef LLVM_LIB_TARGET_XCORE_XCORETARGETOBJECTFILE_H 1006f32e7eSjoerg #define LLVM_LIB_TARGET_XCORE_XCORETARGETOBJECTFILE_H 1106f32e7eSjoerg 1206f32e7eSjoerg #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 1306f32e7eSjoerg 1406f32e7eSjoerg namespace llvm { 1506f32e7eSjoerg 1606f32e7eSjoerg static const unsigned CodeModelLargeSize = 256; 1706f32e7eSjoerg 1806f32e7eSjoerg class XCoreTargetObjectFile : public TargetLoweringObjectFileELF { 1906f32e7eSjoerg MCSection *BSSSectionLarge; 2006f32e7eSjoerg MCSection *DataSectionLarge; 2106f32e7eSjoerg MCSection *ReadOnlySectionLarge; 2206f32e7eSjoerg MCSection *DataRelROSectionLarge; 2306f32e7eSjoerg 2406f32e7eSjoerg public: 2506f32e7eSjoerg void Initialize(MCContext &Ctx, const TargetMachine &TM) override; 2606f32e7eSjoerg 2706f32e7eSjoerg MCSection *getExplicitSectionGlobal(const GlobalObject *GO, SectionKind Kind, 2806f32e7eSjoerg const TargetMachine &TM) const override; 2906f32e7eSjoerg 3006f32e7eSjoerg MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, 3106f32e7eSjoerg const TargetMachine &TM) const override; 3206f32e7eSjoerg 3306f32e7eSjoerg MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind, 3406f32e7eSjoerg const Constant *C, 35*da58b97aSjoerg Align &Alignment) const override; 3606f32e7eSjoerg }; 3706f32e7eSjoerg } // end namespace llvm 3806f32e7eSjoerg 3906f32e7eSjoerg #endif 40