36 OS << Name <<
" CATTR ";
37 OS <<
"ALIGN(" <<
static_cast<unsigned>(Alignment) <<
"),"
38 <<
"FILL(" <<
static_cast<unsigned>(FillByteValue) <<
")";
39 switch (LoadBehavior) {
54 OS <<
",NOTEXECUTABLE";
80 OS <<
",PRIORITY(" << SortKey <<
")";
81 if (!PartName.
empty())
82 OS <<
",PART(" << PartName <<
")";
90 OS << Name <<
" XATTR ";
97 switch (BindingScope) {
118void MCAsmInfoGOFF::printSwitchToSection(
const MCSection &Section,
119 uint32_t Subsection,
const Triple &
T,
122 const_cast<MCSectionGOFF &
>(
static_cast<const MCSectionGOFF &
>(
Section));
123 switch (Sec.SymbolType) {
125 OS << Sec.getName() <<
" CSECT\n";
130 printSwitchToSection(*Sec.getParent(), Subsection,
T, OS);
132 emitCATTR(OS, Sec.getName(), Sec.EDAttributes.Rmode,
133 Sec.EDAttributes.Alignment, Sec.EDAttributes.LoadBehavior,
135 Sec.EDAttributes.FillByteValue, StringRef());
138 OS << Sec.getName() <<
" CATTR\n";
142 MCSectionGOFF *ED = Sec.getParent();
143 printSwitchToSection(*ED->
getParent(), Subsection,
T, OS);
150 emitXATTR(OS, Sec.getName(), Sec.PRAttributes.Linkage,
151 Sec.PRAttributes.Executable, Sec.PRAttributes.BindingScope);
155 OS << ED->
getName() <<
" CATTR PART(" << Sec.getName() <<
")\n";
static void emitCATTR(raw_ostream &OS, StringRef Name, GOFF::ESDRmode Rmode, GOFF::ESDAlignment Alignment, GOFF::ESDLoadingBehavior LoadBehavior, GOFF::ESDExecutable Executable, bool IsReadOnly, uint32_t SortKey, uint8_t FillByteValue, StringRef PartName)
static void emitXATTR(raw_ostream &OS, StringRef Name, GOFF::ESDLinkageType Linkage, GOFF::ESDExecutable Executable, GOFF::ESDBindingScope BindingScope)
This file defines certain target specific asm properties for GOFF (z/OS) based targets.
This file declares the MCSectionGOFF class, which contains all of the necessary machine code sections...
const char * Data64bitsDirective
StringRef PrivateGlobalPrefix
This prefix is used for globals like constant pool entries that are completely private to the ....
const char * WeakRefDirective
This directive, if non-null, is used to declare a global as being a weak undefined symbol.
StringRef PrivateLabelPrefix
This prefix is used for labels for basic blocks.
const char * ZeroDirective
This should be set to the directive used to get some number of zero (and non-zero if supported by the...
GOFF::EDAttr getEDAttributes() const
GOFF::EDAttr EDAttributes
MCSectionGOFF * getParent() 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.
constexpr bool empty() const
empty - Check if the string is empty.
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.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
@ ESD_ST_ElementDefinition
@ ESD_ST_SectionDefinition
This is an optimization pass for GlobalISel generic memory operations.
GOFF::ESDAlignment Alignment
GOFF::ESDLoadingBehavior LoadBehavior