xref: /aosp_15_r20/external/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker //===-- NVPTXMCAsmInfo.cpp - NVPTX asm properties -------------------------===//
2*9880d681SAndroid Build Coastguard Worker //
3*9880d681SAndroid Build Coastguard Worker //                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker //
5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker //
8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker //
10*9880d681SAndroid Build Coastguard Worker // This file contains the declarations of the NVPTXMCAsmInfo properties.
11*9880d681SAndroid Build Coastguard Worker //
12*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
13*9880d681SAndroid Build Coastguard Worker 
14*9880d681SAndroid Build Coastguard Worker #include "NVPTXMCAsmInfo.h"
15*9880d681SAndroid Build Coastguard Worker #include "llvm/ADT/Triple.h"
16*9880d681SAndroid Build Coastguard Worker #include "llvm/Support/CommandLine.h"
17*9880d681SAndroid Build Coastguard Worker 
18*9880d681SAndroid Build Coastguard Worker using namespace llvm;
19*9880d681SAndroid Build Coastguard Worker 
20*9880d681SAndroid Build Coastguard Worker // -debug-compile - Command line option to inform opt and llc passes to
21*9880d681SAndroid Build Coastguard Worker // compile for debugging
22*9880d681SAndroid Build Coastguard Worker static cl::opt<bool> CompileForDebugging("debug-compile",
23*9880d681SAndroid Build Coastguard Worker                                          cl::desc("Compile for debugging"),
24*9880d681SAndroid Build Coastguard Worker                                          cl::Hidden, cl::init(false));
25*9880d681SAndroid Build Coastguard Worker 
anchor()26*9880d681SAndroid Build Coastguard Worker void NVPTXMCAsmInfo::anchor() {}
27*9880d681SAndroid Build Coastguard Worker 
NVPTXMCAsmInfo(const Triple & TheTriple)28*9880d681SAndroid Build Coastguard Worker NVPTXMCAsmInfo::NVPTXMCAsmInfo(const Triple &TheTriple) {
29*9880d681SAndroid Build Coastguard Worker   if (TheTriple.getArch() == Triple::nvptx64) {
30*9880d681SAndroid Build Coastguard Worker     PointerSize = CalleeSaveStackSlotSize = 8;
31*9880d681SAndroid Build Coastguard Worker   }
32*9880d681SAndroid Build Coastguard Worker 
33*9880d681SAndroid Build Coastguard Worker   CommentString = "//";
34*9880d681SAndroid Build Coastguard Worker 
35*9880d681SAndroid Build Coastguard Worker   HasSingleParameterDotFile = false;
36*9880d681SAndroid Build Coastguard Worker 
37*9880d681SAndroid Build Coastguard Worker   InlineAsmStart = " begin inline asm";
38*9880d681SAndroid Build Coastguard Worker   InlineAsmEnd = " end inline asm";
39*9880d681SAndroid Build Coastguard Worker 
40*9880d681SAndroid Build Coastguard Worker   SupportsDebugInformation = CompileForDebugging;
41*9880d681SAndroid Build Coastguard Worker   // PTX does not allow .align on functions.
42*9880d681SAndroid Build Coastguard Worker   HasFunctionAlignment = false;
43*9880d681SAndroid Build Coastguard Worker   HasDotTypeDotSizeDirective = false;
44*9880d681SAndroid Build Coastguard Worker   // PTX does not allow .hidden or .protected
45*9880d681SAndroid Build Coastguard Worker   HiddenDeclarationVisibilityAttr = HiddenVisibilityAttr = MCSA_Invalid;
46*9880d681SAndroid Build Coastguard Worker   ProtectedVisibilityAttr = MCSA_Invalid;
47*9880d681SAndroid Build Coastguard Worker 
48*9880d681SAndroid Build Coastguard Worker   Data8bitsDirective = " .b8 ";
49*9880d681SAndroid Build Coastguard Worker   Data16bitsDirective = " .b16 ";
50*9880d681SAndroid Build Coastguard Worker   Data32bitsDirective = " .b32 ";
51*9880d681SAndroid Build Coastguard Worker   Data64bitsDirective = " .b64 ";
52*9880d681SAndroid Build Coastguard Worker   ZeroDirective = " .b8";
53*9880d681SAndroid Build Coastguard Worker   AsciiDirective = " .b8";
54*9880d681SAndroid Build Coastguard Worker   AscizDirective = " .b8";
55*9880d681SAndroid Build Coastguard Worker 
56*9880d681SAndroid Build Coastguard Worker   // @TODO: Can we just disable this?
57*9880d681SAndroid Build Coastguard Worker   WeakDirective = "\t// .weak\t";
58*9880d681SAndroid Build Coastguard Worker   GlobalDirective = "\t// .globl\t";
59*9880d681SAndroid Build Coastguard Worker }
60