xref: /llvm-project/llvm/lib/Target/AVR/AVRTargetObjectFile.h (revision c1dd607463dbaa0398df1c88b6759dde03be6353)
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