109467b48Spatrick //===-- AVRTargetObjectFile.h - AVR Object Info -----------------*- C++ -*-===// 209467b48Spatrick // 309467b48Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 409467b48Spatrick // See https://llvm.org/LICENSE.txt for license information. 509467b48Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 609467b48Spatrick // 709467b48Spatrick //===----------------------------------------------------------------------===// 809467b48Spatrick 909467b48Spatrick #ifndef LLVM_AVR_TARGET_OBJECT_FILE_H 1009467b48Spatrick #define LLVM_AVR_TARGET_OBJECT_FILE_H 1109467b48Spatrick 1209467b48Spatrick #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 1309467b48Spatrick 1409467b48Spatrick namespace llvm { 1509467b48Spatrick 1609467b48Spatrick /// Lowering for an AVR ELF32 object file. 1709467b48Spatrick class AVRTargetObjectFile : public TargetLoweringObjectFileELF { 1809467b48Spatrick typedef TargetLoweringObjectFileELF Base; 1909467b48Spatrick 2009467b48Spatrick public: 2109467b48Spatrick void Initialize(MCContext &ctx, const TargetMachine &TM) override; 2209467b48Spatrick 2309467b48Spatrick MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, 2409467b48Spatrick const TargetMachine &TM) const override; 2509467b48Spatrick 2609467b48Spatrick private: 2709467b48Spatrick MCSection *ProgmemDataSection; 28*d415bd75Srobert MCSection *Progmem1DataSection; 29*d415bd75Srobert MCSection *Progmem2DataSection; 30*d415bd75Srobert MCSection *Progmem3DataSection; 31*d415bd75Srobert MCSection *Progmem4DataSection; 32*d415bd75Srobert MCSection *Progmem5DataSection; 3309467b48Spatrick }; 3409467b48Spatrick 3509467b48Spatrick } // end namespace llvm 3609467b48Spatrick 3709467b48Spatrick #endif // LLVM_AVR_TARGET_OBJECT_FILE_H 38