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 Workervoid NVPTXMCAsmInfo::anchor() {} 27*9880d681SAndroid Build Coastguard Worker NVPTXMCAsmInfo(const Triple & TheTriple)28*9880d681SAndroid Build Coastguard WorkerNVPTXMCAsmInfo::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