llvm::MCAsmInfoXCOFF

Target asm properties for XCOFF-based targets.

Synopsis

Declared in <llvm/MC/MCAsmInfoXCOFF.h>

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

NameDescription
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

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