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 ....
StringRef PrivateLabelPrefix
This prefix is used for labels for basic blocks.
bool HasDotTypeDotSizeDirective
True if the target has .type and .size directives, this is true for most ELF targets.
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