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