|
LLVM 24.0.0git
|
#include "Target/ARM/MCTargetDesc/ARMMCAsmInfo.h"
Additional Inherited Members | |
| Public Types inherited from llvm::MCAsmInfo | |
| enum | AsmCharLiteralSyntax { ACLS_Unknown , ACLS_SingleQuotePrefix } |
| Assembly character literal syntax types. More... | |
| using | AtSpecifierKind = uint16_t |
| Type for at specifiers. Currently, 16 bits is enough. | |
| Protected Member Functions inherited from llvm::MCAsmInfoELF | |
| MCAsmInfoELF (const MCTargetOptions &Options) | |
| Protected Member Functions inherited from llvm::MCAsmInfo | |
| void | initializeAtSpecifiers (EnumStrings< AtSpecifierKind, 1 >) |
| Protected Attributes inherited from llvm::MCAsmInfo | |
| 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 | HasCOFFAssociativeComdats = false |
| True if this is a non-GNU COFF target. | |
| bool | HasCOFFComdatConstants = false |
| True if this is a non-GNU COFF target. | |
| bool | IsAIX = false |
| bool | IsHLASM = false |
| 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. | |
| 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 | AllowAdditionalComments = true |
| This indicates whether to allow additional "comment strings" to be lexed as a comment. | |
| const char * | LabelSuffix = ":" |
| This is appended to emitted labels. Defaults to ":". | |
| bool | UsesSetToEquateSymbol = false |
| Use .set instead of = to equate a symbol to an expression. | |
| bool | UseAssignmentForEHBegin = false |
| bool | NeedsLocalForSize = false |
| StringRef | InternalSymbolPrefix = "L" |
| For internal use by compiler and assembler, not meant to be visible externally. | |
| StringRef | LinkerPrivateGlobalPrefix = "" |
| This prefix is used for symbols that should be passed through the assembler but be removed by the linker. | |
| const char * | InlineAsmStart = "APP" |
| If these are nonempty, they contain a directive to emit before and after an inline assembly statement. | |
| const char * | InlineAsmEnd = "NO_APP" |
| 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 | 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 | HasLEB128Directives = true |
| True if the target supports LEB128 directives. | |
| bool | PPCUseFullRegisterNames = false |
| True if full register names are printed. | |
| bool | HasAddrsigDirective = true |
| True if the target supports the .addrsig directive. | |
| const char * | ZeroDirective = "\t.zero\t" |
| 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. | |
| const char * | AsciiDirective = "\t.ascii\t" |
| This directive allows emission of an ascii string with the standard C escape characters embedded into it. | |
| const char * | AscizDirective = "\t.asciz\t" |
| If not null, this allows for special handling of zero terminated strings on this target. | |
| AsmCharLiteralSyntax | CharacterLiteralSyntax = ACLS_Unknown |
| Form used for character literals in the assembly syntax. | |
| const char * | Data8bitsDirective = "\t.byte\t" |
| These directives are used to output some unit of integer data to the current section. | |
| const char * | Data16bitsDirective = "\t.short\t" |
| const char * | Data32bitsDirective = "\t.long\t" |
| const char * | Data64bitsDirective = "\t.quad\t" |
| bool | SupportsSignedData = true |
| True if data directives support signed values. | |
| 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 = "\t.globl\t" |
| 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 | 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 | HasFunctionAlignment = true |
| bool | HasPreferredAlignment = false |
| 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 | 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. | |
| const char * | WeakDirective = "\t.weak\t" |
| 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 | 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. | |
| bool | SupportsDebugInformation = false |
| True if target supports emission of debugging information. | |
| bool | UsesCFIWithoutEH = false |
| True if target uses CFI unwind information for other purposes than EH (debugging / sanitizers) when the exception model is 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. | |
| uint16_t | DwarfFDERelSymbolSpec = 0 |
| The optional specifier to use for the relative FDE symbol references. | |
| bool | EnableDwarfFileDirectoryDefault = true |
| True if DWARF ‘.file directory’ directive syntax is used by default. | |
| bool | DwarfRegNumForCFI = false |
| True if dwarf register numbers are printed instead of symbolic register names in .cfi_* directives. | |
| bool | UseAtForSpecifier = false |
| True if target uses @ (expr@specifier) for relocation specifiers. | |
| bool | UseParensForSpecifier = false |
| (ARM-specific) Uses parens for relocation specifier in data directives, e.g. | |
| 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 = true |
| Should we use the integrated assembler? | |
| bool | ParseInlineAsmUsingAsmParser = false |
| Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set. | |
| bool | PreserveAsmComments = true |
| Preserve Comments in assembly. | |
| unsigned | CommentColumn = 40 |
| The column (zero-based) at which asm comments should be printed. | |
| bool | UseLogicalShr = true |
| True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic. | |
| bool | UseMotorolaIntegers = false |
| llvm::DenseMap< AtSpecifierKind, StringRef > | AtSpecifierToName |
| llvm::StringMap< AtSpecifierKind > | NameToAtSpecifier |
| llvm::DenseSet< llvm::CachedHashStringRef > | ReservedIdentifiers |
| const MCTargetOptions & | TargetOptions |
Definition at line 45 of file ARMMCAsmInfo.h.
|
explicit |
Definition at line 74 of file ARMMCAsmInfo.cpp.
References llvm::MCAsmInfo::AlignmentIsInBytes, llvm::Triple::armeb, atSpecifiers, llvm::MCAsmInfo::CommentString, llvm::MCAsmInfo::Data64bitsDirective, llvm::Triple::getArch(), llvm::MCAsmInfo::initializeAtSpecifiers(), llvm::MCAsmInfo::IsLittleEndian, llvm::MCAsmInfo::MaxInstLength, llvm::MCAsmInfoELF::MCAsmInfoELF(), Options, llvm::MCAsmInfo::SupportsDebugInformation, llvm::Triple::thumbeb, llvm::MCAsmInfo::UseAtForSpecifier, and llvm::MCAsmInfo::UseParensForSpecifier.
|
inlineoverridevirtual |
Reimplemented from llvm::MCAsmInfo.
Definition at line 56 of file ARMMCAsmInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::MCAsmInfo.
Definition at line 52 of file ARMMCAsmInfo.h.
References llvm::ARM::printSpecifierExpr().
|
overridevirtual |
Set whether assembly (inline or otherwise) should be parsed.
Reimplemented from llvm::MCAsmInfo.
Definition at line 98 of file ARMMCAsmInfo.cpp.
References llvm::MCAsmInfo::DwarfRegNumForCFI, and llvm::MCAsmInfo::UseIntegratedAssembler.
|
overridevirtual |
True if the instruction is stored in multiple halfwords, with the high-order half appearing first in memory regardless of target endianness, to distinguish it from instructions occupying only one halfword.
Examples are the Thumb variant of Arm, microMIPS, and nanoMIPS.
Reimplemented from llvm::MCAsmInfo.
Definition at line 108 of file ARMMCAsmInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().