131d157ae1ac2cd9c787dc3c1d28e64c682803844Jia Liu//===-- XCoreTargetObjectFile.h - XCore Object Info -------------*- C++ -*-===// 2f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner// 3f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner// The LLVM Compiler Infrastructure 4f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner// 5f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner// This file is distributed under the University of Illinois Open Source 6f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner// License. See LICENSE.TXT for details. 7f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner// 8f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner//===----------------------------------------------------------------------===// 9f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner 10f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner#ifndef LLVM_TARGET_XCORE_TARGETOBJECTFILE_H 11f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner#define LLVM_TARGET_XCORE_TARGETOBJECTFILE_H 12f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner 13362dd0bef5437f85586c046bc53287b6fbe9c099Anton Korobeynikov#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 14f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner 15f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattnernamespace llvm { 16f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesstatic const unsigned CodeModelLargeSize = 256; 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 19f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner class XCoreTargetObjectFile : public TargetLoweringObjectFileELF { 2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection *BSSSectionLarge; 2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection *DataSectionLarge; 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection *ReadOnlySectionLarge; 2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection *DataRelROSectionLarge; 24f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner public: 25dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines void Initialize(MCContext &Ctx, const TargetMachine &TM) override; 26a87dea4f8c546ca748f1777a8d1cabcc06515d91Chris Lattner 2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection * 2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines getExplicitSectionGlobal(const GlobalValue *GV, 2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines SectionKind Kind, Mangler &Mang, 3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const TargetMachine &TM) const override; 3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection * 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines Mangler &Mang, 3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const TargetMachine &TM) const override; 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection *getSectionForConstant(SectionKind Kind) const override; 38f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner }; 39f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner} // end namespace llvm 40f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner 41f0144127b98425d214e59e4a1a4b342b78e3642bChris Lattner#endif 42