mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-13 15:37:24 +00:00
Remove some overridden functions in XCoreTargetAsmInfo that are
implemented exactly the same way as its ELFTargetAsmInfo subclass has them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76653 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3380d5c4aa
commit
42b6418cc0
@ -29,7 +29,7 @@ namespace llvm {
|
||||
virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
|
||||
virtual std::string printSectionFlags(unsigned flags) const;
|
||||
const Section* MergeableConstSection(const GlobalVariable *GV) const;
|
||||
inline const Section* MergeableConstSection(const Type *Ty) const;
|
||||
const Section* MergeableConstSection(const Type *Ty) const;
|
||||
const Section* MergeableStringSection(const GlobalVariable *GV) const;
|
||||
virtual const Section*
|
||||
SelectSectionForMachineConst(const Type *Ty) const;
|
||||
|
@ -142,11 +142,10 @@ ELFTargetAsmInfo::SelectSectionForMachineConst(const Type *Ty) const {
|
||||
|
||||
const Section*
|
||||
ELFTargetAsmInfo::MergeableConstSection(const GlobalVariable *GV) const {
|
||||
Constant *C = GV->getInitializer();
|
||||
return MergeableConstSection(C->getType());
|
||||
return MergeableConstSection(GV->getInitializer()->getType());
|
||||
}
|
||||
|
||||
inline const Section*
|
||||
const Section*
|
||||
ELFTargetAsmInfo::MergeableConstSection(const Type *Ty) const {
|
||||
const TargetData *TD = TM.getTargetData();
|
||||
|
||||
|
@ -72,12 +72,9 @@ const Section*
|
||||
XCoreTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
|
||||
SectionKind::Kind Kind = SectionKindForGlobal(GV);
|
||||
|
||||
if (const GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV))
|
||||
{
|
||||
if (const GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV)) {
|
||||
if (!GVar->isWeakForLinker()) {
|
||||
switch (Kind) {
|
||||
case SectionKind::RODataMergeStr:
|
||||
return MergeableStringSection(GVar);
|
||||
case SectionKind::RODataMergeConst:
|
||||
return getReadOnlySection();
|
||||
case SectionKind::ThreadData:
|
||||
@ -93,17 +90,6 @@ XCoreTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
|
||||
}
|
||||
|
||||
const Section*
|
||||
XCoreTargetAsmInfo::SelectSectionForMachineConst(const Type *Ty) const {
|
||||
return MergeableConstSection(Ty);
|
||||
}
|
||||
|
||||
const Section*
|
||||
XCoreTargetAsmInfo::MergeableConstSection(const GlobalVariable *GV) const {
|
||||
Constant *C = GV->getInitializer();
|
||||
return MergeableConstSection(C->getType());
|
||||
}
|
||||
|
||||
inline const Section*
|
||||
XCoreTargetAsmInfo::MergeableConstSection(const Type *Ty) const {
|
||||
const TargetData *TD = TM.getTargetData();
|
||||
|
||||
@ -120,15 +106,8 @@ XCoreTargetAsmInfo::MergeableConstSection(const Type *Ty) const {
|
||||
return getReadOnlySection();
|
||||
}
|
||||
|
||||
const Section* XCoreTargetAsmInfo::
|
||||
MergeableStringSection(const GlobalVariable *GV) const {
|
||||
// FIXME insert in correct mergable section
|
||||
return getReadOnlySection();
|
||||
}
|
||||
|
||||
unsigned XCoreTargetAsmInfo::
|
||||
SectionFlagsForGlobal(const GlobalValue *GV,
|
||||
const char* Name) const {
|
||||
SectionFlagsForGlobal(const GlobalValue *GV, const char* Name) const {
|
||||
unsigned Flags = ELFTargetAsmInfo::SectionFlagsForGlobal(GV, Name);
|
||||
// Mask out unsupported flags
|
||||
Flags &= ~(SectionFlags::Small | SectionFlags::TLS);
|
||||
@ -162,41 +141,3 @@ SectionFlagsForGlobal(const GlobalValue *GV,
|
||||
|
||||
return Flags;
|
||||
}
|
||||
|
||||
std::string XCoreTargetAsmInfo::
|
||||
printSectionFlags(unsigned flags) const {
|
||||
std::string Flags = ",\"";
|
||||
|
||||
if (!(flags & SectionFlags::Debug))
|
||||
Flags += 'a';
|
||||
if (flags & SectionFlags::Code)
|
||||
Flags += 'x';
|
||||
if (flags & SectionFlags::Writeable)
|
||||
Flags += 'w';
|
||||
if (flags & SectionFlags::Mergeable)
|
||||
Flags += 'M';
|
||||
if (flags & SectionFlags::Strings)
|
||||
Flags += 'S';
|
||||
if (flags & SectionFlags::TLS)
|
||||
Flags += 'T';
|
||||
if (flags & SectionFlags::Small) {
|
||||
if (flags & SectionFlags::Writeable)
|
||||
Flags += 'd'; // DP relative
|
||||
else
|
||||
Flags += 'c'; // CP relative
|
||||
}
|
||||
|
||||
Flags += "\",";
|
||||
|
||||
Flags += '@';
|
||||
|
||||
if (flags & SectionFlags::BSS)
|
||||
Flags += "nobits";
|
||||
else
|
||||
Flags += "progbits";
|
||||
|
||||
if (unsigned entitySize = SectionFlags::getEntitySize(flags))
|
||||
Flags += "," + utostr(entitySize);
|
||||
|
||||
return Flags;
|
||||
}
|
||||
|
@ -29,12 +29,7 @@ namespace llvm {
|
||||
explicit XCoreTargetAsmInfo(const XCoreTargetMachine &TM);
|
||||
|
||||
virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
|
||||
virtual std::string printSectionFlags(unsigned flags) const;
|
||||
const Section* MergeableConstSection(const GlobalVariable *GV) const;
|
||||
inline const Section* MergeableConstSection(const Type *Ty) const;
|
||||
const Section* MergeableStringSection(const GlobalVariable *GV) const;
|
||||
virtual const Section*
|
||||
SelectSectionForMachineConst(const Type *Ty) const;
|
||||
const Section* MergeableConstSection(const Type *Ty) const;
|
||||
virtual unsigned
|
||||
SectionFlagsForGlobal(const GlobalValue *GV = NULL,
|
||||
const char* name = NULL) const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user