1 //===-- NVPTXMCAsmInfo.cpp - NVPTX asm properties -------------------------===//
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
7 //===----------------------------------------------------------------------===//
9 // This file contains the declarations of the NVPTXMCAsmInfo properties.
11 //===----------------------------------------------------------------------===//
13 #include "NVPTXMCAsmInfo.h"
14 #include "llvm/TargetParser/Triple.h"
18 void NVPTXMCAsmInfo::anchor() {}
20 NVPTXMCAsmInfo::NVPTXMCAsmInfo(const Triple
&TheTriple
,
21 const MCTargetOptions
&Options
) {
22 if (TheTriple
.getArch() == Triple::nvptx64
) {
23 CodePointerSize
= CalleeSaveStackSlotSize
= 8;
28 HasSingleParameterDotFile
= false;
30 InlineAsmStart
= " begin inline asm";
31 InlineAsmEnd
= " end inline asm";
33 SupportsDebugInformation
= true;
34 // PTX does not allow .align on functions.
35 HasFunctionAlignment
= false;
36 HasDotTypeDotSizeDirective
= false;
37 // PTX does not allow .hidden or .protected
38 HiddenDeclarationVisibilityAttr
= HiddenVisibilityAttr
= MCSA_Invalid
;
39 ProtectedVisibilityAttr
= MCSA_Invalid
;
41 Data8bitsDirective
= ".b8 ";
42 Data16bitsDirective
= nullptr; // not supported
43 Data32bitsDirective
= ".b32 ";
44 Data64bitsDirective
= ".b64 ";
45 ZeroDirective
= ".b8";
46 AsciiDirective
= nullptr; // not supported
47 AscizDirective
= nullptr; // not supported
48 SupportsQuotedNames
= false;
49 SupportsExtendedDwarfLocDirective
= false;
50 SupportsSignedData
= false;
52 PrivateGlobalPrefix
= "$L__";
53 PrivateLabelPrefix
= PrivateGlobalPrefix
;
55 // @TODO: Can we just disable this?
56 WeakDirective
= "\t// .weak\t";
57 GlobalDirective
= "\t// .globl\t";
59 UseIntegratedAssembler
= false;
61 // Avoid using parens for identifiers starting with $ - ptxas does
63 UseParensForDollarSignNames
= false;
65 // ptxas does not support DWARF `.file fileno directory filename'
66 // syntax as of v11.X.
67 EnableDwarfFileDirectoryDefault
= false;