You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.179
Former-commit-id: 67aa10e65b237e1c4537630979ee99ebe1374215
This commit is contained in:
parent
d6bde52373
commit
8625704ad8
41
external/llvm/lib/Target/AVR/AVRTargetObjectFile.cpp
vendored
Normal file
41
external/llvm/lib/Target/AVR/AVRTargetObjectFile.cpp
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
//===-- AVRTargetObjectFile.cpp - AVR Object Files ------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "AVRTargetObjectFile.h"
|
||||
|
||||
#include "llvm/BinaryFormat/ELF.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/GlobalValue.h"
|
||||
#include "llvm/IR/Mangler.h"
|
||||
#include "llvm/MC/MCContext.h"
|
||||
#include "llvm/MC/MCSectionELF.h"
|
||||
|
||||
#include "AVR.h"
|
||||
|
||||
namespace llvm {
|
||||
void AVRTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM) {
|
||||
Base::Initialize(Ctx, TM);
|
||||
ProgmemDataSection =
|
||||
Ctx.getELFSection(".progmem.data", ELF::SHT_PROGBITS, ELF::SHF_ALLOC);
|
||||
}
|
||||
|
||||
MCSection *
|
||||
AVRTargetObjectFile::SelectSectionForGlobal(const GlobalObject *GO,
|
||||
SectionKind Kind,
|
||||
const TargetMachine &TM) const {
|
||||
// Global values in flash memory are placed in the progmem.data section
|
||||
// unless they already have a user assigned section.
|
||||
if (AVR::isProgramMemoryAddress(GO) && !GO->hasSection())
|
||||
return ProgmemDataSection;
|
||||
|
||||
// Otherwise, we work the same way as ELF.
|
||||
return Base::SelectSectionForGlobal(GO, Kind, TM);
|
||||
}
|
||||
} // end of namespace llvm
|
||||
|
Reference in New Issue
Block a user