15c96de3aSDylan McKay //===-- AVRTargetObjectFile.h - AVR Object Info -----------------*- C++ -*-===// 25c96de3aSDylan McKay // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65c96de3aSDylan McKay // 75c96de3aSDylan McKay //===----------------------------------------------------------------------===// 85c96de3aSDylan McKay 95c96de3aSDylan McKay #ifndef LLVM_AVR_TARGET_OBJECT_FILE_H 105c96de3aSDylan McKay #define LLVM_AVR_TARGET_OBJECT_FILE_H 115c96de3aSDylan McKay 125c96de3aSDylan McKay #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 135c96de3aSDylan McKay 145c96de3aSDylan McKay namespace llvm { 15d56676edSDylan McKay 16d56676edSDylan McKay /// Lowering for an AVR ELF32 object file. 175c96de3aSDylan McKay class AVRTargetObjectFile : public TargetLoweringObjectFileELF { 185c96de3aSDylan McKay typedef TargetLoweringObjectFileELF Base; 195c96de3aSDylan McKay 205c96de3aSDylan McKay public: 215c96de3aSDylan McKay void Initialize(MCContext &ctx, const TargetMachine &TM) override; 225c96de3aSDylan McKay 236733564eSPeter Collingbourne MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, 245c96de3aSDylan McKay const TargetMachine &TM) const override; 255c96de3aSDylan McKay 265c96de3aSDylan McKay private: 275c96de3aSDylan McKay MCSection *ProgmemDataSection; 28*c1dd6074SBen Shi MCSection *Progmem1DataSection; 29*c1dd6074SBen Shi MCSection *Progmem2DataSection; 30*c1dd6074SBen Shi MCSection *Progmem3DataSection; 31*c1dd6074SBen Shi MCSection *Progmem4DataSection; 32*c1dd6074SBen Shi MCSection *Progmem5DataSection; 335c96de3aSDylan McKay }; 345c96de3aSDylan McKay 355c96de3aSDylan McKay } // end namespace llvm 365c96de3aSDylan McKay 375c96de3aSDylan McKay #endif // LLVM_AVR_TARGET_OBJECT_FILE_H 38