llvm::MCAsmInfoDarwin

Synopsis

Declared in <llvm/MC/MCAsmInfoDarwin.h>

class MCAsmInfoDarwin
    : public MCAsmInfo

Base Classes

NameDescription
MCAsmInfoThis class is intended to be used as a base class for asm properties and features specific to the target.

Type Aliases

NameDescription
AtSpecifierKind Type for at specifiers. Currently, 16 bits is enough.

Enums

NameDescription
AsmCharLiteralSyntax Assembly character literal syntax types.

Member Functions

NameDescription
MCAsmInfoDarwin [constructor]Construct from MCTargetOptions
operator= [deleted]Copy assignment operator
addInitialFrameState
avoidWeakIfComdat
binutilsIsAtLeast
characterLiteralSyntax
doDwarfFDESymbolsUseAbsDiff
doesAllowAtAtStartOfIdentifier
doesAllowAtInName
doesAllowDollarAtStartOfIdentifier
doesAllowQuestionAtStartOfIdentifier
doesDwarfUseRelocationsAcrossSections
doesSetDirectiveSuppressReloc
doesSupportDataRegionDirectives
doesSupportDebugInformation
enableDwarfFileDirectoryDefault
evaluateAsRelocatableImpl [virtual]
getAlignmentIsInBytes
getAsciiDirective
getAscizDirective
getAssemblerDialect
getCOMMDirectiveAlignmentIsInBytes
getCalleeSaveStackSlotSize Get the callee-saved register stack slot size in bytes.
getCodePointerSize Get the code pointer size in bytes.
getCommentColumn
getCommentString
getData16bitsDirective
getData32bitsDirective
getData64bitsDirective
getData8bitsDirective
getDollarIsPC
getExceptionHandlingType
getExportedVisibilityAttr
getExprForFDESymbol
getExprForPersonalitySymbol [virtual]
getGlobalDirective
getHiddenDeclarationVisibilityAttr
getHiddenVisibilityAttr
getInitialFrameState
getInlineAsmEnd
getInlineAsmStart
getInternalSymbolPrefix
getLCOMMDirectiveAlignmentType
getLabelSuffix
getLinkerPrivateGlobalPrefix
getMaxInstLength [virtual]Returns the maximum possible encoded instruction size in bytes. If STI is null, this should be the maximum size for any subtarget.
getMinInstAlignment
getOutputAssemblerDialect
getProtectedVisibilityAttr
getReservedIdentifiers
getSeparatorString
getSpecifierForName
getSpecifierName
getStackSection [virtual]Targets can implement this method to specify a section to switch to depending on whether the translation unit has any trampolines that require an executable stack.
getTargetOptions
getTextAlignFillValue
getWeakDirective
getWeakRefDirective
getWinEHEncodingType
getZeroDirective
hasCOFFAssociativeComdats
hasCOFFComdatConstants
hasDotTypeDotSizeDirective
hasFunctionAlignment
hasIdentDirective
hasLEB128Directives
hasLinkerPrivateGlobalPrefix
hasNoDeadStrip
hasPreferredAlignment
hasSingleParameterDotFile
hasSubsectionsViaSymbols
hasWeakDefCanBeHiddenDirective
isAIX
isAcceptableChar Return true if C is an acceptable character inside a symbol name.
isHLASM
isLittleEndian True if the target is little endian.
isMachO
isStackGrowthDirectionUp True if target stack grow up.
isValidUnquotedName Return true if the identifier Name does not need quotes to be syntactically correct.
needsDwarfSectionOffsetDirective
needsLocalForSize
parseInlineAsmUsingAsmParser Return true if target want to use AsmParser to parse inlineasm.
preserveAsmComments Return true if assembly (inline or otherwise) should be parsed.
printExpr
printSpecifierExpr [virtual]
printSwitchToSection
setAllowAtInName
setBinutilsVersion
setCommentColumn
setExceptionsType
setFullRegisterNames
setParseInlineAsmUsingAsmParser Set whether target want to use AsmParser to parse inlineasm.
setPreserveAsmComments Set whether assembly (inline or otherwise) should be parsed.
setUseIntegratedAssembler [virtual]Set whether assembly (inline or otherwise) should be parsed.
shouldAllowAdditionalComments
shouldOmitSectionDirective [virtual]Return true if the .section directive should be omitted when emitting SectionName. For example:
shouldUseLogicalShr
shouldUseMotorolaIntegers
supportsExtendedDwarfLocDirective
supportsNameQuoting
supportsSignedData
useAssignmentForEHBegin
useAtForSpecifier
useCodeAlign [virtual]
useDwarfRegNumForCFI
useFullRegisterNames
useIntegratedAssembler Return true if assembly (inline or otherwise) should be parsed.
useParensForSpecifier
usesCFIForEH Returns true if the exception handling method for the platform uses call frame information to unwind.
usesCFIWithoutEH
usesELFSectionDirectiveForBSS
usesSetToEquateSymbol
usesSunStyleELFSectionSwitchSyntax
usesWindowsCFI

Static Member Functions

NameDescription
isSectionAtomizableBySymbols 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).

Protected Member Functions

Name
initializeAtSpecifiers

Protected Data Members

NameDescription
AlignmentIsInBytes If this is true (the default) then the asmprinter emits ".align N" directives, where N is the number of bytes to align to. Otherwise, it emits ".align log2(N)", e.g. 3 to align to an 8 byte boundary. Defaults to true.
AllowAdditionalComments This indicates whether to allow additional "comment strings" to be lexed as a comment. Setting this attribute to true, will ensure that C-style line comments (// ..), C-style block comments (/* .. */), and "#" are all treated as comments in addition to the string specified by the CommentString attribute. Default is true.
AllowAtAtStartOfIdentifier This is true if the assembler allows the "@" character at the start of a string to be lexed as an AsmToken::Identifier. If the AsmLexer determines that the string can be lexed as a possible comment, setting this option will have no effect, and the string will still be lexed as a comment.
AllowAtInName This is true if the assembler allows @ characters in symbol names. Defaults to false.
AllowDollarAtStartOfIdentifier This is true if the assembler allows the "$" character at the start of of a string to be lexed as an AsmToken::Identifier. If the AsmLexer determines that the string can be lexed as a possible comment, setting this option will have no effect, and the string will still be lexed as a comment.
AllowQuestionAtStartOfIdentifier This is true if the assembler allows the "?" character at the start of of a string to be lexed as an AsmToken::Identifier. If the AsmLexer determines that the string can be lexed as a possible comment, setting this option will have no effect, and the string will still be lexed as a comment.
AsciiDirective This directive allows emission of an ascii string with the standard C escape characters embedded into it. If a target doesn't support this, it can be set to null. Defaults to "t.asciit"
AscizDirective If not null, this allows for special handling of zero terminated strings on this target. This is commonly supported as ".asciz". If a target doesn't support this, it can be set to null. Defaults to "t.ascizt"
AssemblerDialect Which dialect of an assembler variant to use. Defaults to 0
AtSpecifierToName
AvoidWeakIfComdat True if we should mark symbols as global instead of weak, for weak*/linkonce*, if the symbol has a comdat. Defaults to false.
BinutilsVersion
COMMDirectiveAlignmentIsInBytes True is .comm's and .lcomms optional alignment is to be specified in bytes instead of log2(n). Defaults to true.
CalleeSaveStackSlotSize Size of the stack slot reserved for callee-saved registers, in bytes. Default is same as pointer size.
CharacterLiteralSyntax Form used for character literals in the assembly syntax. Useful for producing strings as byte lists. If a target does not use or support this, it shall be set to ACLS_Unknown. Defaults to ACLS_Unknown.
CodePointerSize Code pointer size in bytes. Default is 4.
CommentColumn The column (zero-based) at which asm comments should be printed.
CommentString This indicates the comment string used by the assembler. Defaults to "#"
Data16bitsDirective
Data32bitsDirective
Data64bitsDirective
Data8bitsDirective These directives are used to output some unit of integer data to the current section. If a data directive is set to null, smaller data directives will be used to emit the large sizes. Defaults to "t.bytet", "t.shortt", "t.longt", "t.quadt"
DollarIsPC The '$' token, when not referencing an identifier or constant, refers to the current PC. Defaults to false.
DwarfFDERelSymbolSpec The optional specifier to use for the relative FDE symbol references.
DwarfFDESymbolsUseAbsDiff True if DWARF FDE symbol reference relocations should be replaced by an absolute difference.
DwarfRegNumForCFI True if dwarf register numbers are printed instead of symbolic register names in .cfi_* directives. Defaults to false.
DwarfUsesRelocationsAcrossSections True if Dwarf2 output generally uses relocations for references to other .debug_* sections.
EnableDwarfFileDirectoryDefault True if DWARF `.file directory' directive syntax is used by default.
ExceptionsType Exception handling format for the target. Defaults to None.
ExportedVisibilityAttr This attribute, if not MCSA_Invalid, is used to declare a symbol as having exported visibility. Defaults to MCSA_Exported.
GlobalDirective This is the directive used to declare a global entity. Defaults to ".globl".
HasCOFFAssociativeComdats True if this is a non-GNU COFF target. The COFF port of the GNU linker doesn't handle associative comdats in the way that we would like to use them.
HasCOFFComdatConstants True if this is a non-GNU COFF target. For GNU targets, we don't generate constants into comdat sections.
HasDotTypeDotSizeDirective True if the target has .type and .size directives, this is true for most ELF targets. Defaults to true.
HasFunctionAlignment
HasIdentDirective True if the target has a .ident directive, this is true for ELF targets. Defaults to false.
HasLEB128Directives True if the target supports LEB128 directives.
HasNoDeadStrip True if this target supports the MachO .no_dead_strip directive. Defaults to false.
HasPreferredAlignment
HasSingleParameterDotFile True if the target has a single parameter .file directive, this is true for ELF targets. Defaults to true.
HasSubsectionsViaSymbols True if this target has the MachO .subsections_via_symbols directive. Default is false.
HasWeakDefCanBeHiddenDirective True if we have a directive to declare a global as being a weak defined symbol that can be hidden (unexported). Defaults to false.
HiddenDeclarationVisibilityAttr This attribute, if not MCSA_Invalid, is used to declare an undefined symbol as having hidden visibility. Defaults to MCSA_Hidden.
HiddenVisibilityAttr This attribute, if not MCSA_Invalid, is used to declare a symbol as having hidden visibility. Defaults to MCSA_Hidden.
InitialFrameState
InlineAsmEnd
InlineAsmStart If these are nonempty, they contain a directive to emit before and after an inline assembly statement. Defaults to "APP", "NO_APP"
InternalSymbolPrefix For internal use by compiler and assembler, not meant to be visible externally. They are usually not emitted to the symbol table in the object file. This is also used for labels for basic blocks.
IsAIX
IsHLASM
IsLittleEndian True if target is little endian. Default is true.
LCOMMDirectiveAlignmentType Describes if the .lcomm directive for the target supports an alignment argument and how it is interpreted. Defaults to NoAlignment.
LabelSuffix This is appended to emitted labels. Defaults to ":"
LinkerPrivateGlobalPrefix This prefix is used for symbols that should be passed through the assembler but be removed by the linker. This is 'l' on Darwin, currently used for some ObjC metadata. The default of "" meast that for this system a plain private symbol should be used. Defaults to "".
MaxInstLength This is the maximum possible length of an instruction, which is needed to compute the size of an inline asm. Defaults to 4.
MinInstAlignment Every possible instruction length is a multiple of this value. Factored out in .debug_frame and .debug_line. Defaults to 1.
NameToAtSpecifier
NeedsDwarfSectionOffsetDirective
NeedsLocalForSize
PPCUseFullRegisterNames True if full register names are printed.
ParseInlineAsmUsingAsmParser Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set.
PreserveAsmComments Preserve Comments in assembly
ProtectedVisibilityAttr This attribute, if not MCSA_Invalid, is used to declare a symbol as having protected visibility. Defaults to MCSA_Protected
ReservedIdentifiers
SeparatorString This string, if specified, is used to separate instructions from each other when on the same line. Defaults to ';'
SetDirectiveSuppressesReloc True if the expression .long f - g uses a relocation but it can be suppressed by writing a = f - g .long a
StackGrowsUp True if target stack grow up. Default is false.
SunStyleELFSectionSwitchSyntax 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. Defaults to false.
SupportsDebugInformation True if target supports emission of debugging information. Defaults to false.
SupportsExtendedDwarfLocDirective True if the target supports flags in ".loc" directive, false if only location is allowed.
SupportsQuotedNames If this is true, symbol names with invalid characters will be printed in quotes.
SupportsSignedData True if data directives support signed values
TargetOptions
TextAlignFillValue If non-zero, this is used to fill the executable space created as the result of a alignment directive. Defaults to 0
UseAssignmentForEHBegin
UseAtForSpecifier True if target uses @ (exprspecifier) for relocation specifiers.
UseDataRegionDirectives This is true if data region markers should be printed as ".data_region/.end_data_region" directives. If false, use "\(d/\)a" labels instead.
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. It may then be overridden after construction (see CodeGenTargetMachineImpl::initAsmInfo()).
UseLogicalShr True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic.
UseMotorolaIntegers
UseParensForSpecifier (ARM-specific) Uses parens for relocation specifier in data directives, e.g. .word foo(got).
UsesCFIWithoutEH True if target uses CFI unwind information for other purposes than EH (debugging / sanitizers) when ExceptionsType == ExceptionHandling::None.
UsesELFSectionDirectiveForBSS This is true if this target uses ELF '.section' directive before the '.bss' one. It's used for PPC/Linux which doesn't support the '.bss' directive only. Defaults to false.
UsesSetToEquateSymbol Use .set instead of = to equate a symbol to an expression.
WeakDirective Used to declare a global as being a weak symbol. Defaults to ".weak".
WeakRefDirective This directive, if non-null, is used to declare a global as being a weak undefined symbol. Defaults to nullptr.
WinEHEncodingType Windows exception handling data (.pdata) encoding. Defaults to Invalid.
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. Common cases are "t.zerot" and "t.spacet". Defaults to "t.zerot"