|
enum | AsmCharLiteralSyntax { ACLS_Unknown
, ACLS_SingleQuotePrefix
} |
| Assembly character literal syntax types. More...
|
|
| MCAsmInfo () |
|
virtual | ~MCAsmInfo () |
|
unsigned | getCodePointerSize () const |
| Get the code pointer size in bytes.
|
|
unsigned | getCalleeSaveStackSlotSize () const |
| Get the callee-saved register stack slot size in bytes.
|
|
bool | isLittleEndian () const |
| True if the target is little endian.
|
|
bool | isStackGrowthDirectionUp () const |
| True if target stack grow up.
|
|
bool | hasSubsectionsViaSymbols () const |
|
const char * | getData8bitsDirective () const |
|
const char * | getData16bitsDirective () const |
|
const char * | getData32bitsDirective () const |
|
const char * | getData64bitsDirective () const |
|
bool | supportsSignedData () const |
|
const char * | getGPRel64Directive () const |
|
const char * | getGPRel32Directive () const |
|
const char * | getDTPRel64Directive () const |
|
const char * | getDTPRel32Directive () const |
|
const char * | getTPRel64Directive () const |
|
const char * | getTPRel32Directive () const |
|
virtual MCSection * | getNonexecutableStackSection (MCContext &Ctx) const |
| Targets can implement this method to specify a section to switch to if the translation unit doesn't have any trampolines that require an executable stack.
|
|
virtual const MCExpr * | getExprForPersonalitySymbol (const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const |
|
virtual const MCExpr * | getExprForFDESymbol (const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const |
|
virtual bool | isAcceptableChar (char C) const |
| Return true if C is an acceptable character inside a symbol name.
|
|
virtual bool | isValidUnquotedName (StringRef Name) const |
| Return true if the identifier Name does not need quotes to be syntactically correct.
|
|
virtual bool | shouldOmitSectionDirective (StringRef SectionName) const |
| Return true if the .section directive should be omitted when emitting SectionName .
|
|
bool | usesSunStyleELFSectionSwitchSyntax () const |
|
bool | usesELFSectionDirectiveForBSS () const |
|
bool | needsDwarfSectionOffsetDirective () const |
|
bool | hasMachoZeroFillDirective () const |
|
bool | hasMachoTBSSDirective () const |
|
bool | hasCOFFAssociativeComdats () const |
|
bool | hasCOFFComdatConstants () const |
|
bool | hasVisibilityOnlyWithLinkage () const |
|
virtual unsigned | getMaxInstLength (const MCSubtargetInfo *STI=nullptr) const |
| Returns the maximum possible encoded instruction size in bytes.
|
|
unsigned | getMinInstAlignment () const |
|
bool | getDollarIsPC () const |
|
bool | getDotIsPC () const |
|
bool | getStarIsPC () const |
|
const char * | getSeparatorString () const |
|
unsigned | getCommentColumn () const |
| This indicates the column (zero-based) at which asm comments should be printed.
|
|
StringRef | getCommentString () const |
|
bool | getRestrictCommentStringToStartOfStatement () const |
|
bool | shouldAllowAdditionalComments () const |
|
bool | getEmitGNUAsmStartIndentationMarker () const |
|
const char * | getLabelSuffix () const |
|
bool | shouldEmitLabelsInUpperCase () const |
|
bool | useAssignmentForEHBegin () const |
|
bool | needsLocalForSize () const |
|
StringRef | getPrivateGlobalPrefix () const |
|
StringRef | getPrivateLabelPrefix () const |
|
bool | hasLinkerPrivateGlobalPrefix () const |
|
StringRef | getLinkerPrivateGlobalPrefix () const |
|
const char * | getInlineAsmStart () const |
|
const char * | getInlineAsmEnd () const |
|
const char * | getCode16Directive () const |
|
const char * | getCode32Directive () const |
|
const char * | getCode64Directive () const |
|
unsigned | getAssemblerDialect () const |
|
bool | doesAllowAtInName () const |
|
void | setAllowAtInName (bool V) |
|
bool | doesAllowQuestionAtStartOfIdentifier () const |
|
bool | doesAllowAtAtStartOfIdentifier () const |
|
bool | doesAllowDollarAtStartOfIdentifier () const |
|
bool | doesAllowHashAtStartOfIdentifier () const |
|
bool | supportsNameQuoting () const |
|
bool | doesSupportDataRegionDirectives () const |
|
bool | useDotAlignForAlignment () const |
|
bool | hasLEB128Directives () const |
|
bool | useFullRegisterNames () const |
|
void | setFullRegisterNames (bool V) |
|
const char * | getZeroDirective () const |
|
bool | doesZeroDirectiveSupportNonZeroValue () const |
|
const char * | getAsciiDirective () const |
|
const char * | getAscizDirective () const |
|
const char * | getByteListDirective () const |
|
const char * | getPlainStringDirective () const |
|
AsmCharLiteralSyntax | characterLiteralSyntax () const |
|
bool | getAlignmentIsInBytes () const |
|
unsigned | getTextAlignFillValue () const |
|
const char * | getGlobalDirective () const |
|
bool | doesSetDirectiveSuppressReloc () const |
|
bool | hasAggressiveSymbolFolding () const |
|
bool | getCOMMDirectiveAlignmentIsInBytes () const |
|
LCOMM::LCOMMType | getLCOMMDirectiveAlignmentType () const |
|
bool | hasBasenameOnlyForFileDirective () const |
|
bool | hasPairedDoubleQuoteStringConstants () const |
|
bool | hasFunctionAlignment () const |
|
bool | hasDotTypeDotSizeDirective () const |
|
bool | hasSingleParameterDotFile () const |
|
bool | hasFourStringsDotFile () const |
|
bool | hasIdentDirective () const |
|
bool | hasNoDeadStrip () const |
|
bool | hasAltEntry () const |
|
const char * | getWeakDirective () const |
|
const char * | getWeakRefDirective () const |
|
bool | hasWeakDefDirective () const |
|
bool | hasWeakDefCanBeHiddenDirective () const |
|
bool | avoidWeakIfComdat () const |
|
MCSymbolAttr | getHiddenVisibilityAttr () const |
|
MCSymbolAttr | getExportedVisibilityAttr () const |
|
MCSymbolAttr | getHiddenDeclarationVisibilityAttr () const |
|
MCSymbolAttr | getProtectedVisibilityAttr () const |
|
MCSymbolAttr | getMemtagAttr () const |
|
bool | doesSupportDebugInformation () const |
|
ExceptionHandling | getExceptionHandlingType () const |
|
WinEH::EncodingType | getWinEHEncodingType () const |
|
void | setExceptionsType (ExceptionHandling EH) |
|
bool | usesCFIWithoutEH () const |
|
bool | usesCFIForEH () const |
| Returns true if the exception handling method for the platform uses call frame information to unwind.
|
|
bool | usesWindowsCFI () const |
|
bool | doesDwarfUseRelocationsAcrossSections () const |
|
bool | doDwarfFDESymbolsUseAbsDiff () const |
|
bool | useDwarfRegNumForCFI () const |
|
bool | useParensForSymbolVariant () const |
|
bool | useParensForDollarSignNames () const |
|
bool | supportsExtendedDwarfLocDirective () const |
|
bool | usesDwarfFileAndLocDirectives () const |
|
bool | needsDwarfSectionSizeInHeader () const |
|
bool | enableDwarfFileDirectoryDefault () const |
|
void | addInitialFrameState (const MCCFIInstruction &Inst) |
|
const std::vector< MCCFIInstruction > & | getInitialFrameState () const |
|
void | setBinutilsVersion (std::pair< int, int > Value) |
|
bool | useIntegratedAssembler () const |
| Return true if assembly (inline or otherwise) should be parsed.
|
|
bool | parseInlineAsmUsingAsmParser () const |
| Return true if target want to use AsmParser to parse inlineasm.
|
|
bool | binutilsIsAtLeast (int Major, int Minor) const |
|
virtual void | setUseIntegratedAssembler (bool Value) |
| Set whether assembly (inline or otherwise) should be parsed.
|
|
virtual void | setParseInlineAsmUsingAsmParser (bool Value) |
| Set whether target want to use AsmParser to parse inlineasm.
|
|
bool | preserveAsmComments () const |
| Return true if assembly (inline or otherwise) should be parsed.
|
|
virtual void | setPreserveAsmComments (bool Value) |
| Set whether assembly (inline or otherwise) should be parsed.
|
|
bool | shouldUseLogicalShr () const |
|
bool | hasMipsExpressions () const |
|
bool | needsFunctionDescriptors () const |
|
bool | shouldUseMotorolaIntegers () const |
|
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 | HasMachoZeroFillDirective = false |
| True if this is a MachO target that supports the macho-specific .zerofill directive for emitting BSS Symbols.
|
|
bool | HasMachoTBSSDirective = false |
| True if this is a MachO target that supports the macho-specific .tbss directive for emitting thread local BSS Symbols.
|
|
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 | HasAggressiveSymbolFolding = true |
| False if the assembler requires that we use.
|
|
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.
|
|
bool | HasAltEntry = false |
| True if this target supports the MachO .alt_entry 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 | HasWeakDefDirective = false |
| True if we have a directive to declare a global as being a weak defined 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.
|
|
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 |
|