LLVM 17.0.0git
|
#include "llvm/MC/MCAsmInfoDarwin.h"
Additional Inherited Members | |
![]() | |
enum | AsmCharLiteralSyntax { ACLS_Unknown , ACLS_SingleQuotePrefix } |
Assembly character literal syntax types. More... | |
![]() | |
unsigned | CodePointerSize = 4 |
Code pointer size in bytes. Default is 4. | |
unsigned | CalleeSaveStackSlotSize = 4 |
Size of the stack slot reserved for callee-saved registers, in bytes. | |
bool | IsLittleEndian = true |
True if target is little endian. Default is true. | |
bool | StackGrowsUp = false |
True if target stack grow up. Default is false. | |
bool | HasSubsectionsViaSymbols = false |
True if this target has the MachO .subsections_via_symbols directive. | |
bool | HasMachoZeroFillDirective = false |
True if this is a MachO target that supports the macho-specific .zerofill directive for emitting BSS Symbols. | |
bool | HasMachoTBSSDirective = false |
True if this is a MachO target that supports the macho-specific .tbss directive for emitting thread local BSS Symbols. | |
bool | HasCOFFAssociativeComdats = false |
True if this is a non-GNU COFF target. | |
bool | HasCOFFComdatConstants = false |
True if this is a non-GNU COFF target. | |
bool | HasVisibilityOnlyWithLinkage = false |
True if this is an XCOFF target that supports visibility attributes as part of .global, .weak, .extern, and .comm. | |
unsigned | MaxInstLength = 4 |
This is the maximum possible length of an instruction, which is needed to compute the size of an inline asm. | |
unsigned | MinInstAlignment = 1 |
Every possible instruction length is a multiple of this value. | |
bool | DollarIsPC = false |
The '$' token, when not referencing an identifier or constant, refers to the current PC. | |
bool | DotIsPC = true |
Allow '. | |
bool | StarIsPC = false |
Whether the '*' token refers to the current PC. | |
const char * | SeparatorString |
This string, if specified, is used to separate instructions from each other when on the same line. | |
StringRef | CommentString |
This indicates the comment string used by the assembler. | |
bool | RestrictCommentStringToStartOfStatement = false |
This indicates whether the comment string is only accepted as a comment at the beginning of statements. | |
bool | AllowAdditionalComments = true |
This indicates whether to allow additional "comment strings" to be lexed as a comment. | |
bool | EmitGNUAsmStartIndentationMarker = true |
Should we emit the '\t' as the starting indentation marker for GNU inline asm statements. | |
const char * | LabelSuffix |
This is appended to emitted labels. Defaults to ":". | |
bool | EmitLabelsInUpperCase = false |
Emit labels in purely upper case. Defaults to false. | |
bool | UseAssignmentForEHBegin = false |
bool | NeedsLocalForSize = false |
StringRef | PrivateGlobalPrefix |
This prefix is used for globals like constant pool entries that are completely private to the .s file and should not have names in the .o file. | |
StringRef | PrivateLabelPrefix |
This prefix is used for labels for basic blocks. | |
StringRef | LinkerPrivateGlobalPrefix |
This prefix is used for symbols that should be passed through the assembler but be removed by the linker. | |
const char * | InlineAsmStart |
If these are nonempty, they contain a directive to emit before and after an inline assembly statement. | |
const char * | InlineAsmEnd |
const char * | Code16Directive |
These are assembly directives that tells the assembler to interpret the following instructions differently. | |
const char * | Code32Directive |
const char * | Code64Directive |
unsigned | AssemblerDialect = 0 |
Which dialect of an assembler variant to use. Defaults to 0. | |
bool | AllowAtInName = false |
This is true if the assembler allows @ characters in symbol names. | |
bool | AllowQuestionAtStartOfIdentifier = false |
This is true if the assembler allows the "?" character at the start of of a string to be lexed as an AsmToken::Identifier. | |
bool | AllowDollarAtStartOfIdentifier = false |
This is true if the assembler allows the "$" character at the start of of a string to be lexed as an AsmToken::Identifier. | |
bool | AllowAtAtStartOfIdentifier = false |
This is true if the assembler allows the "@" character at the start of a string to be lexed as an AsmToken::Identifier. | |
bool | AllowHashAtStartOfIdentifier = false |
This is true if the assembler allows the "#" character at the start of a string to be lexed as an AsmToken::Identifier. | |
bool | SupportsQuotedNames = true |
If this is true, symbol names with invalid characters will be printed in quotes. | |
bool | UseDataRegionDirectives = false |
This is true if data region markers should be printed as ".data_region/.end_data_region" directives. | |
bool | UseDotAlignForAlignment = false |
True if .align is to be used for alignment. | |
bool | HasLEB128Directives = true |
True if the target supports LEB128 directives. | |
const char * | ZeroDirective |
This should be set to the directive used to get some number of zero (and non-zero if supported by the directive) bytes emitted to the current section. | |
bool | ZeroDirectiveSupportsNonZeroValue = true |
This should be set to true if the zero directive supports a value to emit other than zero. | |
const char * | AsciiDirective |
This directive allows emission of an ascii string with the standard C escape characters embedded into it. | |
const char * | AscizDirective |
If not null, this allows for special handling of zero terminated strings on this target. | |
const char * | ByteListDirective = nullptr |
This directive accepts a comma-separated list of bytes for emission as a string of bytes. | |
const char * | PlainStringDirective = nullptr |
This directive allows emission of a zero-terminated ascii string without the standard C escape characters embedded into it. | |
AsmCharLiteralSyntax | CharacterLiteralSyntax = ACLS_Unknown |
Form used for character literals in the assembly syntax. | |
const char * | Data8bitsDirective |
These directives are used to output some unit of integer data to the current section. | |
const char * | Data16bitsDirective |
const char * | Data32bitsDirective |
const char * | Data64bitsDirective |
bool | SupportsSignedData = true |
True if data directives support signed values. | |
const char * | GPRel64Directive = nullptr |
If non-null, a directive that is used to emit a word which should be relocated as a 64-bit GP-relative offset, e.g. | |
const char * | GPRel32Directive = nullptr |
If non-null, a directive that is used to emit a word which should be relocated as a 32-bit GP-relative offset, e.g. | |
const char * | DTPRel32Directive = nullptr |
If non-null, directives that are used to emit a word/dword which should be relocated as a 32/64-bit DTP/TP-relative offset, e.g. | |
const char * | DTPRel64Directive = nullptr |
const char * | TPRel32Directive = nullptr |
const char * | TPRel64Directive = nullptr |
bool | SunStyleELFSectionSwitchSyntax = false |
This is true if this target uses "Sun Style" syntax for section switching ("#alloc,#write" etc) instead of the normal ELF syntax (,"a,w") in .section directives. | |
bool | UsesELFSectionDirectiveForBSS = false |
This is true if this target uses ELF '.section' directive before the '.bss' one. | |
bool | NeedsDwarfSectionOffsetDirective = false |
bool | AlignmentIsInBytes = true |
If this is true (the default) then the asmprinter emits ".align N" directives, where N is the number of bytes to align to. | |
unsigned | TextAlignFillValue = 0 |
If non-zero, this is used to fill the executable space created as the result of a alignment directive. | |
const char * | GlobalDirective |
This is the directive used to declare a global entity. | |
bool | SetDirectiveSuppressesReloc = false |
True if the expression .long f - g uses a relocation but it can be suppressed by writing a = f - g .long a. | |
bool | HasAggressiveSymbolFolding = true |
False if the assembler requires that we use. | |
bool | COMMDirectiveAlignmentIsInBytes = true |
True is .comm's and .lcomms optional alignment is to be specified in bytes instead of log2(n). | |
LCOMM::LCOMMType | LCOMMDirectiveAlignmentType = LCOMM::NoAlignment |
Describes if the .lcomm directive for the target supports an alignment argument and how it is interpreted. | |
bool | HasBasenameOnlyForFileDirective = true |
True if the target only has basename for .file directive. | |
bool | HasPairedDoubleQuoteStringConstants = false |
True if the target represents string constants as mostly raw characters in paired double quotation with paired double quotation marks as the escape mechanism to represent a double quotation mark within the string. | |
bool | HasFunctionAlignment = true |
bool | HasDotTypeDotSizeDirective = true |
True if the target has .type and .size directives, this is true for most ELF targets. | |
bool | HasSingleParameterDotFile = true |
True if the target has a single parameter .file directive, this is true for ELF targets. | |
bool | HasFourStringsDotFile = false |
True if the target has a four strings .file directive, strings seperated by comma. | |
bool | HasIdentDirective = false |
True if the target has a .ident directive, this is true for ELF targets. | |
bool | HasNoDeadStrip = false |
True if this target supports the MachO .no_dead_strip directive. | |
bool | HasAltEntry = false |
True if this target supports the MachO .alt_entry directive. | |
const char * | WeakDirective |
Used to declare a global as being a weak symbol. Defaults to ".weak". | |
const char * | WeakRefDirective = nullptr |
This directive, if non-null, is used to declare a global as being a weak undefined symbol. | |
bool | HasWeakDefDirective = false |
True if we have a directive to declare a global as being a weak defined symbol. | |
bool | HasWeakDefCanBeHiddenDirective = false |
True if we have a directive to declare a global as being a weak defined symbol that can be hidden (unexported). | |
bool | AvoidWeakIfComdat = false |
True if we should mark symbols as global instead of weak, for weak*/linkonce*, if the symbol has a comdat. | |
MCSymbolAttr | HiddenVisibilityAttr = MCSA_Hidden |
This attribute, if not MCSA_Invalid, is used to declare a symbol as having hidden visibility. | |
MCSymbolAttr | ExportedVisibilityAttr = MCSA_Exported |
This attribute, if not MCSA_Invalid, is used to declare a symbol as having exported visibility. | |
MCSymbolAttr | HiddenDeclarationVisibilityAttr = MCSA_Hidden |
This attribute, if not MCSA_Invalid, is used to declare an undefined symbol as having hidden visibility. | |
MCSymbolAttr | ProtectedVisibilityAttr = MCSA_Protected |
This attribute, if not MCSA_Invalid, is used to declare a symbol as having protected visibility. | |
MCSymbolAttr | MemtagAttr = MCSA_Memtag |
bool | SupportsDebugInformation = false |
True if target supports emission of debugging information. | |
ExceptionHandling | ExceptionsType = ExceptionHandling::None |
Exception handling format for the target. Defaults to None. | |
bool | UsesCFIForDebug = false |
True if target uses CFI unwind information for debugging purpose when ExceptionsType == ExceptionHandling::None . | |
WinEH::EncodingType | WinEHEncodingType = WinEH::EncodingType::Invalid |
Windows exception handling data (.pdata) encoding. Defaults to Invalid. | |
bool | DwarfUsesRelocationsAcrossSections = true |
True if Dwarf2 output generally uses relocations for references to other .debug_* sections. | |
bool | DwarfFDESymbolsUseAbsDiff = false |
True if DWARF FDE symbol reference relocations should be replaced by an absolute difference. | |
bool | UsesDwarfFileAndLocDirectives = true |
True if the target supports generating the DWARF line table through using the .loc/.file directives. | |
bool | EnableDwarfFileDirectoryDefault = true |
True if DWARF ‘.file directory’ directive syntax is used by default. | |
bool | DwarfSectionSizeRequired = true |
True if the target needs the DWARF section length in the header (if any) of the DWARF section in the assembly file. | |
bool | DwarfRegNumForCFI = false |
True if dwarf register numbers are printed instead of symbolic register names in .cfi_* directives. | |
bool | UseParensForSymbolVariant = false |
True if target uses parens to indicate the symbol variant instead of . | |
bool | UseParensForDollarSignNames = true |
True if the target uses parens for symbol names starting with '$' character to distinguish them from absolute names. | |
bool | SupportsExtendedDwarfLocDirective = true |
True if the target supports flags in ".loc" directive, false if only location is allowed. | |
std::vector< MCCFIInstruction > | InitialFrameState |
std::pair< int, int > | BinutilsVersion = {2, 26} |
bool | UseIntegratedAssembler |
Should we use the integrated assembler? The integrated assembler should be enabled by default (by the constructors) when failing to parse a valid piece of assembly (inline or otherwise) is considered a bug. | |
bool | ParseInlineAsmUsingAsmParser |
Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set. | |
bool | PreserveAsmComments |
Preserve Comments in assembly. | |
DebugCompressionType | CompressDebugSections = DebugCompressionType::None |
Compress DWARF debug sections. Defaults to no compression. | |
bool | UseLogicalShr = true |
True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic. | |
bool | RelaxELFRelocations = true |
bool | HasMipsExpressions = false |
bool | UseMotorolaIntegers = false |
bool | NeedsFunctionDescriptors = false |
Definition at line 21 of file MCAsmInfoDarwin.h.
|
explicit |
Definition at line 58 of file MCAsmInfoDarwin.cpp.
References llvm::MCAsmInfo::AlignmentIsInBytes, llvm::MCAsmInfo::COMMDirectiveAlignmentIsInBytes, llvm::MCAsmInfo::DwarfUsesRelocationsAcrossSections, llvm::MCAsmInfo::HasAggressiveSymbolFolding, llvm::MCAsmInfo::HasAltEntry, llvm::MCAsmInfo::HasDotTypeDotSizeDirective, llvm::MCAsmInfo::HasMachoTBSSDirective, llvm::MCAsmInfo::HasMachoZeroFillDirective, llvm::MCAsmInfo::HasNoDeadStrip, llvm::MCAsmInfo::HasSingleParameterDotFile, llvm::MCAsmInfo::HasSubsectionsViaSymbols, llvm::MCAsmInfo::HasWeakDefCanBeHiddenDirective, llvm::MCAsmInfo::HasWeakDefDirective, llvm::MCAsmInfo::HiddenDeclarationVisibilityAttr, llvm::MCAsmInfo::HiddenVisibilityAttr, llvm::MCAsmInfo::InlineAsmEnd, llvm::MCAsmInfo::InlineAsmStart, llvm::MCAsmInfo::LCOMMDirectiveAlignmentType, llvm::MCAsmInfo::LinkerPrivateGlobalPrefix, llvm::LCOMM::Log2Alignment, llvm::MCSA_Invalid, llvm::MCSA_PrivateExtern, llvm::MCAsmInfo::ProtectedVisibilityAttr, llvm::MCAsmInfo::SetDirectiveSuppressesReloc, llvm::MCAsmInfo::WeakRefDirective, and llvm::MCAsmInfo::ZeroDirective.
|
overridevirtual |
True if the section is atomized using the symbols in it.
This is false if the section is not atomized at all (most ELF sections) or if it is atomized based on its contents (MachO' __TEXT,__cstring for example).
Reimplemented from llvm::MCAsmInfo.
Definition at line 21 of file MCAsmInfoDarwin.cpp.
References llvm::MCSection::getName(), llvm::MCSectionMachO::getSegmentName(), llvm::MCSectionMachO::getType(), llvm::MachO::S_16BYTE_LITERALS, llvm::MachO::S_4BYTE_LITERALS, llvm::MachO::S_8BYTE_LITERALS, llvm::MachO::S_CSTRING_LITERALS, llvm::MachO::S_INTERPOSING, llvm::MachO::S_LAZY_SYMBOL_POINTERS, llvm::MachO::S_LITERAL_POINTERS, llvm::MachO::S_MOD_INIT_FUNC_POINTERS, llvm::MachO::S_MOD_TERM_FUNC_POINTERS, llvm::MachO::S_NON_LAZY_SYMBOL_POINTERS, and llvm::MachO::S_THREAD_LOCAL_VARIABLE_POINTERS.