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;
20252723Sdim    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.
39252723Sdim    const MCSection *getReginfoSection() const { return ReginfoSection; }
40198090Srdivacky  };
41198090Srdivacky} // end namespace llvm
42198090Srdivacky
43198090Srdivacky#endif
44