Move logic of determining ELF entsize from the .s printer to initialization

time. That way, the EntrySize field is initialized for other code paths, 
namely, the .ll -> .o code path.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115141 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jan Wen Voung
2010-09-30 05:59:22 +00:00
parent 1b6285cd72
commit 186e7a0fb1
4 changed files with 63 additions and 12 deletions

View File

@@ -104,17 +104,8 @@ void MCSectionELF::PrintSwitchToSection(const MCAsmInfo &MAI,
else if (Type == MCSectionELF::SHT_PROGBITS)
OS << "progbits";
if (getKind().isMergeable1ByteCString()) {
OS << ",1";
} else if (getKind().isMergeable2ByteCString()) {
OS << ",2";
} else if (getKind().isMergeable4ByteCString() ||
getKind().isMergeableConst4()) {
OS << ",4";
} else if (getKind().isMergeableConst8()) {
OS << ",8";
} else if (getKind().isMergeableConst16()) {
OS << ",16";
if (EntrySize) {
OS << "," << EntrySize;
}
}
@@ -132,4 +123,12 @@ bool MCSectionELF::HasCommonSymbols() const {
return false;
}
unsigned MCSectionELF::DetermineEntrySize(SectionKind Kind) {
if (Kind.isMergeable1ByteCString()) return 1;
if (Kind.isMergeable2ByteCString()) return 2;
if (Kind.isMergeable4ByteCString()) return 4;
if (Kind.isMergeableConst4()) return 4;
if (Kind.isMergeableConst8()) return 8;
if (Kind.isMergeableConst16()) return 16;
return 0;
}