Synopsis

Declared in <llvm/MC/MCAsmInfoDarwin.h>

class MCAsmInfoDarwin
    : public MCAsmInfo

Base Classes

Name

Description

MCAsmInfo

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

Type Aliases

Name

Description

AtSpecifierKind

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

Enums

Name

Description

AsmCharLiteralSyntax

Assembly character literal syntax types.

Member Functions

Name

Description

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

Name

Description

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

Protected Data Members

Name

Description

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"

Created with MrDocs