LLVM 20.0.0git
MCAsmInfoXCOFF.cpp
Go to the documentation of this file.
1//===- MC/MCAsmInfoXCOFF.cpp - XCOFF asm properties ------------ *- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
12
13using namespace llvm;
14
15namespace llvm {
17}
18
19void MCAsmInfoXCOFF::anchor() {}
20
22 IsAIX = true;
23 IsLittleEndian = false;
24
25 PrivateGlobalPrefix = "L..";
26 PrivateLabelPrefix = "L..";
27 SupportsQuotedNames = false;
29 HasLEB128Directives = false;
30 ZeroDirective = "\t.space\t";
31 AsciiDirective = nullptr; // not supported
32 AscizDirective = nullptr; // not supported
34
35 // Use .vbyte for data definition to avoid directives that apply an implicit
36 // alignment.
37 Data16bitsDirective = "\t.vbyte\t2, ";
38 Data32bitsDirective = "\t.vbyte\t4, ";
39
44
46}
47
49 // QualName is allowed for a MCSymbolXCOFF, and
50 // QualName contains '[' and ']'.
51 if (C == '[' || C == ']')
52 return true;
53
54 // For AIX assembler, symbols may consist of numeric digits,
55 // underscores, periods, uppercase or lowercase letters, or
56 // any combination of these.
57 return isAlnum(C) || C == '_' || C == '.';
58}
This file contains some functions that are useful when dealing with strings.
bool isAcceptableChar(char C) const override
Return true if C is an acceptable character inside a symbol name.
const char * Data16bitsDirective
Definition: MCAsmInfo.h:237
const char * AsciiDirective
This directive allows emission of an ascii string with the standard C escape characters embedded into...
Definition: MCAsmInfo.h:220
ExceptionHandling ExceptionsType
Exception handling format for the target. Defaults to None.
Definition: MCAsmInfo.h:368
StringRef PrivateGlobalPrefix
This prefix is used for globals like constant pool entries that are completely private to the ....
Definition: MCAsmInfo.h:142
const char * Data32bitsDirective
Definition: MCAsmInfo.h:238
LCOMM::LCOMMType LCOMMDirectiveAlignmentType
Describes if the .lcomm directive for the target supports an alignment argument and how it is interpr...
Definition: MCAsmInfo.h:305
StringRef PrivateLabelPrefix
This prefix is used for labels for basic blocks.
Definition: MCAsmInfo.h:146
bool HasDotTypeDotSizeDirective
True if the target has .type and .size directives, this is true for most ELF targets.
Definition: MCAsmInfo.h:313
bool ParseInlineAsmUsingAsmParser
Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set.
Definition: MCAsmInfo.h:425
bool COMMDirectiveAlignmentIsInBytes
True is .comm's and .lcomms optional alignment is to be specified in bytes instead of log2(n).
Definition: MCAsmInfo.h:301
AsmCharLiteralSyntax CharacterLiteralSyntax
Form used for character literals in the assembly syntax.
Definition: MCAsmInfo.h:230
const char * ZeroDirective
This should be set to the directive used to get some number of zero (and non-zero if supported by the...
Definition: MCAsmInfo.h:215
bool SupportsQuotedNames
If this is true, symbol names with invalid characters will be printed in quotes.
Definition: MCAsmInfo.h:196
const char * AscizDirective
If not null, this allows for special handling of zero terminated strings on this target.
Definition: MCAsmInfo.h:225
bool IsLittleEndian
True if target is little endian. Default is true.
Definition: MCAsmInfo.h:79
@ ACLS_SingleQuotePrefix
Unknown; character literals not used by LLVM for this target.
Definition: MCAsmInfo.h:62
bool HasLEB128Directives
True if the target supports LEB128 directives.
Definition: MCAsmInfo.h:204
@ C
The default llvm calling convention, compatible with C.
Definition: CallingConv.h:34
@ Log2Alignment
Definition: MCAsmInfo.h:50
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
@ AIX
AIX Exception Handling.
cl::opt< cl::boolOrDefault > UseLEB128Directives("use-leb128-directives", cl::Hidden, cl::desc("Disable the usage of LEB128 directives, and generate .byte instead."), cl::init(cl::BOU_UNSET))