15fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck//===-- llvm/Target/MBlazeTargetObjectFile.h - MBlaze Obj. Info -*- C++ -*-===// 25fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck// 35fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck// The LLVM Compiler Infrastructure 45fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck// 55fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck// This file is distributed under the University of Illinois Open Source 65fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck// License. See LICENSE.TXT for details. 75fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck// 85fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck//===----------------------------------------------------------------------===// 95fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck 105fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck#ifndef LLVM_TARGET_MBLAZE_TARGETOBJECTFILE_H 115fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck#define LLVM_TARGET_MBLAZE_TARGETOBJECTFILE_H 125fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck 135fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 145fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck 155fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Pecknamespace llvm { 165fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck 175fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck class MBlazeTargetObjectFile : public TargetLoweringObjectFileELF { 185fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck const MCSection *SmallDataSection; 195fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck const MCSection *SmallBSSSection; 205fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck public: 218403d5641c86b5d5919f167b5b74b54d8d56ec5aWesley Peck 225fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck void Initialize(MCContext &Ctx, const TargetMachine &TM); 235fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck 245fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck /// IsGlobalInSmallSection - Return true if this global address should be 255fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck /// placed into small data/bss section. 265fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck bool IsGlobalInSmallSection(const GlobalValue *GV, 275fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck const TargetMachine &TM, 285fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck SectionKind Kind) const; 295fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck 305fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck bool IsGlobalInSmallSection(const GlobalValue *GV, 318403d5641c86b5d5919f167b5b74b54d8d56ec5aWesley Peck const TargetMachine &TM) const; 328403d5641c86b5d5919f167b5b74b54d8d56ec5aWesley Peck 335fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck const MCSection *SelectSectionForGlobal(const GlobalValue *GV, 345fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck SectionKind Kind, 355fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck Mangler *Mang, 365fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck const TargetMachine &TM) const; 375fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck }; 385fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck} // end namespace llvm 395fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck 405fbf150c2062d2243851d26dcfbe5c4383a253ddWesley Peck#endif 41