Target asm properties for XCOFF‐based targets.

Synopsis

Declared in <llvm/MC/MCAsmInfoXCOFF.h>

class MCAsmInfoXCOFF
    : 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

operator= [deleted]

Deleted copy assignment.

addInitialFrameState

Append an initial CFI instruction to the prologue frame state.

avoidWeakIfComdat

True if weak*/linkonce* symbols with a comdat should be marked global.

binutilsIsAtLeast

True if the configured binutils version is at least Major.Minor.

characterLiteralSyntax

Return the character‐literal syntax used by this target.

doDwarfFDESymbolsUseAbsDiff

True if DWARF FDE symbol refs should become absolute differences.

doesAllowAtAtStartOfIdentifier

True if @ may start an identifier token.

doesAllowAtInName

True if @ is allowed inside symbol names.

doesAllowDollarAtStartOfIdentifier

True if $ may start an identifier token.

doesAllowQuestionAtStartOfIdentifier

True if ? may start an identifier token.

doesDwarfUseRelocationsAcrossSections

True if Dwarf2 output uses relocations across .debug_* sections.

doesSetDirectiveSuppressReloc

True if .set can suppress a reloc for symbol differences.

doesSupportDataRegionDirectives

True if data‐region markers are printed as directives.

doesSupportDebugInformation

True if the target supports emission of debugging information.

enableDwarfFileDirectoryDefault

True if DWARF .file directory syntax is used by default.

evaluateAsRelocatableImpl [virtual]

Evaluate E as a relocatable MCValue.

getAlignmentIsInBytes

True if .align takes a byte count rather than log2(N).

getAsciiDirective

Return the ASCII string directive.

getAscizDirective

Return the NUL‐terminated ASCII string directive.

getAssemblerDialect

Return the default assembler dialect variant.

getCOMMDirectiveAlignmentIsInBytes

True if .comm / .lcomm alignment is specified in bytes.

getCalleeSaveStackSlotSize

Get the callee‐saved register stack slot size in bytes.

getCodePointerSize

Get the code pointer size in bytes.

getCommentColumn

Return the zero‐based column where asm comments are printed.

getCommentString

Return the assembler comment string.

getData16bitsDirective

Return the directive used to emit 16‐bit data.

getData32bitsDirective

Return the directive used to emit 32‐bit data.

getData64bitsDirective

Return the directive used to emit 64‐bit data.

getData8bitsDirective

Return the directive used to emit 8‐bit data.

getDollarIsPC

True if a bare $ token refers to the current PC.

getExceptionHandlingType

Return the exception‐handling format for the target.

getExportedVisibilityAttr

Return the attribute used for exported visibility.

getExprForFDESymbol

Build an MCExpr referring to an FDE symbol for EH tables.

getExprForPersonalitySymbol [virtual]

Build an MCExpr referring to a personality symbol for EH tables.

getGlobalDirective

Return the directive used to declare a global entity.

getHiddenDeclarationVisibilityAttr

Return the attribute used for hidden visibility on undefined symbols.

getHiddenVisibilityAttr

Return the attribute used for hidden visibility.

getInitialFrameState

Return the initial CFI instructions for the prologue frame state.

getInlineAsmEnd

Return the directive emitted after inline assembly.

getInlineAsmStart

Return the directive emitted before inline assembly.

getInternalSymbolPrefix

Return the prefix used for compiler/assembler‐internal symbols.

getLCOMMDirectiveAlignmentType

Return how .lcomm interprets an optional alignment argument.

getLabelSuffix

Return the suffix appended to emitted labels.

getLinkerPrivateGlobalPrefix

Return the linker‐private prefix, or the internal prefix if none.

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

Return the minimum instruction alignment in bytes.

getOutputAssemblerDialect

Return the assembler dialect that output printing should use.

getProtectedVisibilityAttr

Return the attribute used for protected visibility.

getReservedIdentifiers

getReservedIdentifiers overloads

getSeparatorString

Return the string used to separate instructions on one line.

getSpecifierForName

Return the specifier kind for Name, if known.

getSpecifierName

Return the printed name for relocation specifier kind S.

getStackSection [virtual]

Return the section to use for the stack, or null if none.

getTargetOptions

Return the retained target MC options.

getTextAlignFillValue

Return the fill value used for executable alignment padding.

getWeakDirective

Return the directive used to declare a weak symbol.

getWeakRefDirective

Return the directive used to declare a weak undefined symbol.

getWinEHEncodingType

Return the Windows EH data encoding type.

getZeroDirective

Return the zero/fill directive string.

hasCOFFAssociativeComdats

True if associative COFF comdats are supported.

hasCOFFComdatConstants

True if COFF comdat constants are supported.

hasDotTypeDotSizeDirective

True if the target has .type and .size directives.

hasFunctionAlignment

True if the target allows .align directives on functions.

hasIdentDirective

True if the target has a .ident directive.

hasLEB128Directives

True if the target supports LEB128 directives.

hasLinkerPrivateGlobalPrefix

True if a non‐empty linker‐private global prefix is configured.

hasNoDeadStrip

True if this target supports the MachO .no_dead_strip directive.

hasPreferredAlignment

True if the target respects .prefalign directives.

hasSingleParameterDotFile

True if the target has a single‐parameter .file directive.

hasSubsectionsViaSymbols

True if this target has the MachO .subsections_via_symbols directive.

hasWeakDefCanBeHiddenDirective

True if weak‐defined symbols can be declared hidden.

isAIX

True if this target is AIX.

isAcceptableChar

Return true if C is an acceptable character inside a symbol name.

isHLASM

True if using the HLASM dialect on z/OS.

isLittleEndian

True if the target is little endian.

isMachO

True if this is a MachO‐style target (via subsections‐via‐symbols).

isStackGrowthDirectionUp

True if target stack grow up.

isValidUnquotedName

Return true if the identifier Name does not need quotes to be syntactically correct.

needsDwarfSectionOffsetDirective

True if DWARF section offsets need a dedicated directive.

needsLocalForSize

True if a local symbol must be created for .size.

parseInlineAsmUsingAsmParser

Return true if target want to use AsmParser to parse inlineasm.

preserveAsmComments

Return true if assembly (inline or otherwise) should be parsed.

printExpr

Print Expr to OS using target asm syntax.

printSpecifierExpr [virtual]

Print a target specifier expression to OS.

printSwitchToSection [virtual]

Print the assembler text that switches to Section.

setAllowAtInName

Set whether @ is allowed inside symbol names.

setBinutilsVersion

Set the assumed GNU binutils version for ELF feature selection.

setCommentColumn

Set the zero‐based column where asm comments are printed.

setExceptionsType

Set the exception‐handling format for the target.

setFullRegisterNames

Set whether full register names are printed.

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

True if additional comment forms are lexed as comments.

shouldOmitSectionDirective [virtual]

Return true if the .section directive should be omitted when emitting SectionName. For example:

shouldUseLogicalShr

True if >> in constant expressions is a logical shift.

shouldUseMotorolaIntegers

True if Motorola‐style integer literals are used.

supportsExtendedDwarfLocDirective

True if .loc directives may include flags beyond location.

supportsNameQuoting

True if symbol names with invalid characters are printed in quotes.

supportsSignedData

True if data directives accept signed values.

useAssignmentForEHBegin

True if the EH begin symbol is printed with an assignment.

useAtForSpecifier

True if relocation specifiers use @ (exprspecifier).

useCodeAlign [virtual]

Return true if a .align directive should use optimized nops to fill instead of 0s.

useDwarfRegNumForCFI

True if dwarf register numbers are printed in .cfi_* directives.

useFullRegisterNames

True if full register names are printed.

useIntegratedAssembler

Return true if assembly (inline or otherwise) should be parsed.

useParensForSpecifier

True if relocation specifiers use parentheses (ARM‐style).

usesCFIForEH

Returns true if the exception handling method for the platform uses call frame information to unwind.

usesCFIWithoutEH

True if CFI is used for non‐EH purposes when exceptions are None.

usesELFSectionDirectiveForBSS

True if .section must precede .bss on this target.

usesSetToEquateSymbol

True if .set is used instead of = to equate symbols.

usesSunStyleELFSectionSwitchSyntax

True if section switching uses Sun‐style ELF flag syntax.

usesWindowsCFI

True if Windows CFI‐based EH is in use.

Protected Member Functions

Name

Description

MCAsmInfoXCOFF [constructor]

Construct XCOFF asm info using the given target options.

initializeAtSpecifiers

Populate AtSpecifierToName / NameToAtSpecifier from Descs.

printSwitchToSection [virtual]

Print the assembler text that switches to Section.

useCodeAlign [virtual]

Return true if a .align directive should use optimized nops to fill instead of 0s.

Protected Data Members

Name

Description

AlignmentIsInBytes

True if .align takes a byte count rather than log2(N).

AllowAdditionalComments

Whether additional comment forms are lexed as comments.

AllowAtAtStartOfIdentifier

True if '@' may start an identifier token.

AllowAtInName

This is true if the assembler allows @ characters in symbol names. Defaults to false.

AllowDollarAtStartOfIdentifier

True if '$' may start an identifier token.

AllowQuestionAtStartOfIdentifier

True if '?' may start an identifier token.

AsciiDirective

Directive that emits an ASCII string with C escapes.

AscizDirective

Directive that emits a NUL‐terminated ASCII string.

AssemblerDialect

Which dialect of an assembler variant to use. Defaults to 0

AtSpecifierToName

Map from @‐style relocation specifier kind to its printed name.

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

Minimum GNU binutils version whose ELF features may be assumed.

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

Character‐literal syntax used when emitting byte lists.

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

Directive that emits 16‐bit integer data. Defaults to "t.shortt".

Data32bitsDirective

Directive that emits 32‐bit integer data. Defaults to "t.longt".

Data64bitsDirective

Directive that emits 64‐bit integer data. Defaults to "t.quadt".

Data8bitsDirective

Directive that emits 8‐bit integer data.

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

True if the target allows .align directives on functions.

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

True if the target respects .prefalign directives.

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

Initial CFI instructions describing the prologue frame state.

InlineAsmEnd

Directive emitted after an inline assembly statement. Defaults to "NO_APP".

InlineAsmStart

If these are nonempty, they contain a directive to emit before and after an inline assembly statement. Defaults to "APP", "NO_APP"

InternalSymbolPrefix

Prefix for compiler/assembler‐internal symbols.

IsAIX

True if this target is AIX.

IsHLASM

True if using the HLASM dialect on z/OS.

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

Prefix for symbols stripped by the linker after assembly.

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

Map from relocation specifier name to its kind.

NeedsDwarfSectionOffsetDirective

True if DWARF section offsets need a dedicated directive.

NeedsLocalForSize

True if a local symbol must be created for .size.

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

Lowercase identifiers that must be quoted when used as symbol names.

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

True if section switching uses Sun‐style #alloc,#write flags.

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

Target‐specific MC options used while configuring this asm info.

TextAlignFillValue

If non‐zero, this is used to fill the executable space created as the result of a alignment directive. Defaults to 0

UseAssignmentForEHBegin

Print the EH begin symbol with an assignment. Defaults to false.

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

Whether the integrated assembler should be used.

UseLogicalShr

True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic.

UseMotorolaIntegers

True if Motorola‐style integer literals (e.g. $0ac) are used.

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

True if .section must precede .bss on this target.

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

Directive that emits a run of zero (or fill) bytes.

Created with MrDocs