14552c9a3b34ad9b2085635266348d0d9b95514a6Akira Hatanaka//===-- llvm/Target/MipsTargetObjectFile.h - Mips Object Info ---*- C++ -*-===//
2b71b909bc76f48377fc96547d53a088346852600Chris Lattner//
3b71b909bc76f48377fc96547d53a088346852600Chris Lattner//                     The LLVM Compiler Infrastructure
4b71b909bc76f48377fc96547d53a088346852600Chris Lattner//
5b71b909bc76f48377fc96547d53a088346852600Chris Lattner// This file is distributed under the University of Illinois Open Source
6b71b909bc76f48377fc96547d53a088346852600Chris Lattner// License. See LICENSE.TXT for details.
7b71b909bc76f48377fc96547d53a088346852600Chris Lattner//
84552c9a3b34ad9b2085635266348d0d9b95514a6Akira Hatanaka//===----------------------------------------------------------------------===//
9b71b909bc76f48377fc96547d53a088346852600Chris Lattner
10b71b909bc76f48377fc96547d53a088346852600Chris Lattner#ifndef LLVM_TARGET_MIPS_TARGETOBJECTFILE_H
11b71b909bc76f48377fc96547d53a088346852600Chris Lattner#define LLVM_TARGET_MIPS_TARGETOBJECTFILE_H
12b71b909bc76f48377fc96547d53a088346852600Chris Lattner
13362dd0bef5437f85586c046bc53287b6fbe9c099Anton Korobeynikov#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
14b71b909bc76f48377fc96547d53a088346852600Chris Lattner
15b71b909bc76f48377fc96547d53a088346852600Chris Lattnernamespace llvm {
16b71b909bc76f48377fc96547d53a088346852600Chris Lattner
17b71b909bc76f48377fc96547d53a088346852600Chris Lattner  class MipsTargetObjectFile : public TargetLoweringObjectFileELF {
18b71b909bc76f48377fc96547d53a088346852600Chris Lattner    const MCSection *SmallDataSection;
19b71b909bc76f48377fc96547d53a088346852600Chris Lattner    const MCSection *SmallBSSSection;
20b71b909bc76f48377fc96547d53a088346852600Chris Lattner  public:
2181092dc20abe5253a5b4d48a75997baa84dde196Bruno Cardoso Lopes
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
23b71b909bc76f48377fc96547d53a088346852600Chris Lattner
2481092dc20abe5253a5b4d48a75997baa84dde196Bruno Cardoso Lopes
25b71b909bc76f48377fc96547d53a088346852600Chris Lattner    /// IsGlobalInSmallSection - Return true if this global address should be
26b71b909bc76f48377fc96547d53a088346852600Chris Lattner    /// placed into small data/bss section.
27b71b909bc76f48377fc96547d53a088346852600Chris Lattner    bool IsGlobalInSmallSection(const GlobalValue *GV,
284552c9a3b34ad9b2085635266348d0d9b95514a6Akira Hatanaka                                const TargetMachine &TM, SectionKind Kind)const;
29b71b909bc76f48377fc96547d53a088346852600Chris Lattner    bool IsGlobalInSmallSection(const GlobalValue *GV,
3081092dc20abe5253a5b4d48a75997baa84dde196Bruno Cardoso Lopes                                const TargetMachine &TM) const;
3181092dc20abe5253a5b4d48a75997baa84dde196Bruno Cardoso Lopes
32b71b909bc76f48377fc96547d53a088346852600Chris Lattner    const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines                                        SectionKind Kind, Mangler &Mang,
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines                                        const TargetMachine &TM) const override;
35b71b909bc76f48377fc96547d53a088346852600Chris Lattner  };
36b71b909bc76f48377fc96547d53a088346852600Chris Lattner} // end namespace llvm
37b71b909bc76f48377fc96547d53a088346852600Chris Lattner
38b71b909bc76f48377fc96547d53a088346852600Chris Lattner#endif
39