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