25void MCAsmInfoCOFF::anchor() {}
58bool MCAsmInfoCOFF::useCodeAlign(
const MCSection &Sec)
const {
62void MCAsmInfoMicrosoft::anchor() {}
66void MCAsmInfoGNUCOFF::anchor() {}
83 if (
Name ==
".text" ||
Name ==
".data" ||
Name ==
".bss")
90 assert(Selection != 0 &&
"invalid COMDAT selection type");
91 this->Selection = Selection;
100 if (Sec.shouldOmitSectionDirective(Sec.
getName())) {
101 OS <<
'\t' << Sec.
getName() <<
'\n';
105 OS <<
"\t.section\t" << Sec.
getName() <<
",\"";
123 !Sec.isImplicitlyDiscardable(Sec.
getName()))
130 if (Sec.isUnique() && !Sec.COMDATSymbol)
131 OS <<
",unique," << Sec.UniqueID;
134 if (Sec.COMDATSymbol)
137 OS <<
"\n\t.linkonce\t";
138 switch (Sec.Selection) {
149 OS <<
"same_contents";
161 assert(
false &&
"unsupported COFF selection type");
164 if (Sec.COMDATSymbol) {
166 Sec.COMDATSymbol->print(OS,
this);
170 if (Sec.isUnique() && Sec.COMDATSymbol)
171 OS <<
",unique," << Sec.UniqueID;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
bool NeedsDwarfSectionOffsetDirective
MCSymbolAttr ProtectedVisibilityAttr
This attribute, if not MCSA_Invalid, is used to declare a symbol as having protected visibility.
bool AvoidWeakIfComdat
True if we should mark symbols as global instead of weak, for weak*/linkonce*, if the symbol has a c...
bool UseLogicalShr
True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather tha...
LCOMM::LCOMMType LCOMMDirectiveAlignmentType
Describes if the .lcomm directive for the target supports an alignment argument and how it is interpr...
bool HasCOFFComdatConstants
True if this is a non-GNU COFF target.
const char * WeakRefDirective
This directive, if non-null, is used to declare a global as being a weak undefined symbol.
bool HasDotTypeDotSizeDirective
True if the target has .type and .size directives, this is true for most ELF targets.
bool HasCOFFAssociativeComdats
True if this is a non-GNU COFF target.
bool SupportsDebugInformation
True if target supports emission of debugging information.
MCSymbolAttr HiddenDeclarationVisibilityAttr
This attribute, if not MCSA_Invalid, is used to declare an undefined symbol as having hidden visibili...
bool HasSingleParameterDotFile
True if the target has a single parameter .file directive, this is true for ELF targets.
bool COMMDirectiveAlignmentIsInBytes
True is .comm's and .lcomms optional alignment is to be specified in bytes instead of log2(n).
MCSymbolAttr HiddenVisibilityAttr
This attribute, if not MCSA_Invalid, is used to declare a symbol as having hidden visibility.
This represents a section on Windows.
bool shouldOmitSectionDirective(StringRef Name) const
Decides whether a '.section' directive should be printed before the section name.
void setSelection(int Selection) const
Instances of this class represent a uniqued identifier for a section in the current translation unit.
StringRef getName() const
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
This class implements an extremely fast bulk output stream that can only output to a stream.
@ IMAGE_SCN_CNT_UNINITIALIZED_DATA
@ IMAGE_SCN_MEM_DISCARDABLE
@ IMAGE_SCN_CNT_INITIALIZED_DATA
@ IMAGE_COMDAT_SELECT_NODUPLICATES
@ IMAGE_COMDAT_SELECT_LARGEST
@ IMAGE_COMDAT_SELECT_NEWEST
@ IMAGE_COMDAT_SELECT_SAME_SIZE
@ IMAGE_COMDAT_SELECT_ASSOCIATIVE
@ IMAGE_COMDAT_SELECT_EXACT_MATCH
@ IMAGE_COMDAT_SELECT_ANY
This is an optimization pass for GlobalISel generic memory operations.
@ MCSA_Invalid
Not a valid directive.