You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.161
Former-commit-id: 4db48158d3a35497b8f118ab21b5f08ac3d86d98
This commit is contained in:
parent
37fbf886a3
commit
e19d552987
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