25void MCAsmInfoCOFF::anchor() {}
59bool MCAsmInfoCOFF::useCodeAlign(
const MCSection &Sec)
const {
63void MCAsmInfoMicrosoft::anchor() {}
68void MCAsmInfoGNUCOFF::anchor() {}
86 if (
Name ==
".text" ||
Name ==
".data" ||
Name ==
".bss")
93 assert(Selection != 0 &&
"invalid COMDAT selection type");
94 this->Selection = Selection;
103 if (Sec.shouldOmitSectionDirective(Sec.
getName())) {
104 OS <<
'\t' << Sec.
getName() <<
'\n';
108 OS <<
"\t.section\t" << Sec.
getName() <<
",\"";
126 !Sec.isImplicitlyDiscardable(Sec.
getName()))
133 if (Sec.isUnique() && !Sec.COMDATSymbol)
134 OS <<
",unique," << Sec.UniqueID;
137 if (Sec.COMDATSymbol)
140 OS <<
"\n\t.linkonce\t";
141 switch (Sec.Selection) {
152 OS <<
"same_contents";
164 assert(
false &&
"unsupported COFF selection type");
167 if (Sec.COMDATSymbol) {
169 Sec.COMDATSymbol->print(OS,
this);
173 if (Sec.isUnique() && Sec.COMDATSymbol)
174 OS <<
",unique," << Sec.UniqueID;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
MCAsmInfoCOFF(const MCTargetOptions &Options)
MCAsmInfoGNUCOFF(const MCTargetOptions &Options)
MCAsmInfoMicrosoft(const MCTargetOptions &Options)
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...
MCAsmInfo(const MCTargetOptions &Options)
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.