LLVM 20.0.0git
|
#include "llvm/MC/MCAsmInfoDarwin.h"
Static Public Member Functions | |
static bool | isSectionAtomizableBySymbols (const MCSection &Section) |
True if the section is atomized using the symbols in it. | |
Additional Inherited Members | |
Public Types inherited from llvm::MCAsmInfo | |
enum | AsmCharLiteralSyntax { ACLS_Unknown , ACLS_SingleQuotePrefix } |
Assembly character literal syntax types. More... | |
Protected Attributes inherited from llvm::MCAsmInfo | |
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 | 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. | |
bool | PPCUseFullRegisterNames = false |
True if full register names are printed. | |
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 | 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 separated 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. | |
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 | 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 | UsesCFIWithoutEH = false |
True if target uses CFI unwind information for other purposes than EH (debugging / sanitizers) 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. | |
unsigned | CommentColumn = 40 |
The column (zero-based) at which asm comments should be printed. | |
bool | UseLogicalShr = true |
True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic. | |
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::HasDotTypeDotSizeDirective, llvm::MCAsmInfo::HasNoDeadStrip, llvm::MCAsmInfo::HasSingleParameterDotFile, llvm::MCAsmInfo::HasSubsectionsViaSymbols, llvm::MCAsmInfo::HasWeakDefCanBeHiddenDirective, 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.
True if the section is atomized using the symbols in it.
This is false if the section is atomized based on its contents (MachO' __TEXT,__cstring for example).
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.
Referenced by canUsePrivateLabel(), and llvm::MachObjectWriter::getAtom().