xref: /openbsd-src/gnu/llvm/llvm/lib/Target/AVR/AVRTargetObjectFile.h (revision d415bd752c734aee168c4ee86ff32e8cc249eb16)
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