1b22310fdSJia Liu //===-- XCoreTargetObjectFile.h - XCore Object Info -------------*- C++ -*-===// 25e693ed0SChris Lattner // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65e693ed0SChris Lattner // 75e693ed0SChris Lattner //===----------------------------------------------------------------------===// 85e693ed0SChris Lattner 9a7c40ef0SBenjamin Kramer #ifndef LLVM_LIB_TARGET_XCORE_XCORETARGETOBJECTFILE_H 10a7c40ef0SBenjamin Kramer #define LLVM_LIB_TARGET_XCORE_XCORETARGETOBJECTFILE_H 115e693ed0SChris Lattner 12ab663a0bSAnton Korobeynikov #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 135e693ed0SChris Lattner 145e693ed0SChris Lattner namespace llvm { 155e693ed0SChris Lattner 16ff38d37cSRobert Lytton static const unsigned CodeModelLargeSize = 256; 17ff38d37cSRobert Lytton 185e693ed0SChris Lattner class XCoreTargetObjectFile : public TargetLoweringObjectFileELF { 190709a7bdSRafael Espindola MCSection *BSSSectionLarge; 200709a7bdSRafael Espindola MCSection *DataSectionLarge; 210709a7bdSRafael Espindola MCSection *ReadOnlySectionLarge; 220709a7bdSRafael Espindola MCSection *DataRelROSectionLarge; 230709a7bdSRafael Espindola 245e693ed0SChris Lattner public: 2560879a3cSCraig Topper void Initialize(MCContext &Ctx, const TargetMachine &TM) override; 265e693ed0SChris Lattner 276733564eSPeter Collingbourne MCSection *getExplicitSectionGlobal(const GlobalObject *GO, SectionKind Kind, 2873156025SCraig Topper const TargetMachine &TM) const override; 29ff38d37cSRobert Lytton 306733564eSPeter Collingbourne MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, 310709a7bdSRafael Espindola const TargetMachine &TM) const override; 320709a7bdSRafael Espindola 335c0fa58eSMehdi Amini MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind, 3478f46beaSDavid Majnemer const Constant *C, 35*f96a7706SCraig Topper Align &Alignment) const override; 365e693ed0SChris Lattner }; 375e693ed0SChris Lattner } // end namespace llvm 385e693ed0SChris Lattner 395e693ed0SChris Lattner #endif 40