Print entity size for mergeable sections

llvm-svn: 53303
This commit is contained in:
Anton Korobeynikov 2008-07-09 13:22:17 +00:00
parent 4e4f3168dd
commit 94ff6f02ef
2 changed files with 20 additions and 9 deletions

View File

@ -45,15 +45,25 @@ namespace llvm {
namespace SectionFlags {
enum Flags {
None = 0,
Code = 1 << 0, ///< Section contains code
Writeable = 1 << 1, ///< Section is writeable
BSS = 1 << 2, ///< Section contains only zeroes
Mergeable = 1 << 3, ///< Section contains mergeable data
Strings = 1 << 4, ///< Section contains null-terminated strings
TLS = 1 << 5, ///< Section contains thread-local data
Debug = 1 << 6, ///< Section contains debug data
Linkonce = 1 << 7 ///< Section is linkonce
Code = 1 << 0, ///< Section contains code
Writeable = 1 << 1, ///< Section is writeable
BSS = 1 << 2, ///< Section contains only zeroes
Mergeable = 1 << 3, ///< Section contains mergeable data
Strings = 1 << 4, ///< Section contains null-terminated strings
TLS = 1 << 5, ///< Section contains thread-local data
Debug = 1 << 6, ///< Section contains debug data
Linkonce = 1 << 7, ///< Section is linkonce
// Some gap for future flags
EntitySize = 0xFF << 24 ///< Entity size for mergeable sections
};
static inline unsigned getEntitySize(unsigned flags) {
return (flags >> 24) & 0xFF;
}
static inline unsigned setEntitySize(unsigned flags, unsigned size) {
return ((flags & ~EntitySize) | ((size & 0xFF) << 24));
}
}
class TargetMachine;

View File

@ -337,7 +337,8 @@ std::string X86ELFTargetAsmInfo::PrintSectionFlags(unsigned flags) const {
else
Flags += ",@progbits";
// FIXME: entity size for mergeable sections
if (unsigned entitySize = SectionFlags::getEntitySize(flags))
Flags += "," + utostr(entitySize);
return Flags;
}