1444ed5c5SDimitry Andric //===-- AVRTargetObjectFile.h - AVR Object Info -----------------*- C++ -*-===//
2444ed5c5SDimitry Andric //
3444ed5c5SDimitry Andric //                     The LLVM Compiler Infrastructure
4444ed5c5SDimitry Andric //
5444ed5c5SDimitry Andric // This file is distributed under the University of Illinois Open Source
6444ed5c5SDimitry Andric // License. See LICENSE.TXT for details.
7444ed5c5SDimitry Andric //
8444ed5c5SDimitry Andric //===----------------------------------------------------------------------===//
9444ed5c5SDimitry Andric 
10444ed5c5SDimitry Andric #ifndef LLVM_AVR_TARGET_OBJECT_FILE_H
11444ed5c5SDimitry Andric #define LLVM_AVR_TARGET_OBJECT_FILE_H
12444ed5c5SDimitry Andric 
13444ed5c5SDimitry Andric #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
14444ed5c5SDimitry Andric 
15444ed5c5SDimitry Andric namespace llvm {
163ca95b02SDimitry Andric 
173ca95b02SDimitry Andric /// Lowering for an AVR ELF32 object file.
18444ed5c5SDimitry Andric class AVRTargetObjectFile : public TargetLoweringObjectFileELF {
19444ed5c5SDimitry Andric   typedef TargetLoweringObjectFileELF Base;
20444ed5c5SDimitry Andric 
21444ed5c5SDimitry Andric public:
22444ed5c5SDimitry Andric   void Initialize(MCContext &ctx, const TargetMachine &TM) override;
23444ed5c5SDimitry Andric 
24*d88c1a5aSDimitry Andric   MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind,
25444ed5c5SDimitry Andric                                     const TargetMachine &TM) const override;
26444ed5c5SDimitry Andric 
27444ed5c5SDimitry Andric private:
28444ed5c5SDimitry Andric   MCSection *ProgmemDataSection;
29444ed5c5SDimitry Andric };
30444ed5c5SDimitry Andric 
31444ed5c5SDimitry Andric } // end namespace llvm
32444ed5c5SDimitry Andric 
33444ed5c5SDimitry Andric #endif // LLVM_AVR_TARGET_OBJECT_FILE_H
34