1198090Srdivacky//===-- llvm/Target/MipsTargetObjectFile.h - Mips Object Info ---*- C++ -*-===// 2198090Srdivacky// 3198090Srdivacky// The LLVM Compiler Infrastructure 4198090Srdivacky// 5198090Srdivacky// This file is distributed under the University of Illinois Open Source 6198090Srdivacky// License. See LICENSE.TXT for details. 7198090Srdivacky// 8198090Srdivacky//===----------------------------------------------------------------------===// 9198090Srdivacky 10198090Srdivacky#ifndef LLVM_TARGET_MIPS_TARGETOBJECTFILE_H 11198090Srdivacky#define LLVM_TARGET_MIPS_TARGETOBJECTFILE_H 12198090Srdivacky 13203954Srdivacky#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 14198090Srdivacky 15198090Srdivackynamespace llvm { 16198090Srdivacky 17198090Srdivacky class MipsTargetObjectFile : public TargetLoweringObjectFileELF { 18198090Srdivacky const MCSection *SmallDataSection; 19198090Srdivacky const MCSection *SmallBSSSection; 20249423Sdim const MCSection *ReginfoSection; 21198090Srdivacky public: 22221345Sdim 23198090Srdivacky void Initialize(MCContext &Ctx, const TargetMachine &TM); 24198090Srdivacky 25221345Sdim 26198090Srdivacky /// IsGlobalInSmallSection - Return true if this global address should be 27198090Srdivacky /// placed into small data/bss section. 28198090Srdivacky bool IsGlobalInSmallSection(const GlobalValue *GV, 29198090Srdivacky const TargetMachine &TM, SectionKind Kind)const; 30198090Srdivacky bool IsGlobalInSmallSection(const GlobalValue *GV, 31221345Sdim const TargetMachine &TM) const; 32221345Sdim 33198090Srdivacky const MCSection *SelectSectionForGlobal(const GlobalValue *GV, 34198090Srdivacky SectionKind Kind, 35198090Srdivacky Mangler *Mang, 36198090Srdivacky const TargetMachine &TM) const; 37221345Sdim 38198090Srdivacky // TODO: Classify globals as mips wishes. 39249423Sdim const MCSection *getReginfoSection() const { return ReginfoSection; } 40198090Srdivacky }; 41198090Srdivacky} // end namespace llvm 42198090Srdivacky 43198090Srdivacky#endif 44