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