145bb48eaSTom Stellard //===-- MCTargetDesc/AMDGPUMCAsmInfo.cpp - Assembly Info ------------------===//
245bb48eaSTom Stellard //
345bb48eaSTom Stellard //                     The LLVM Compiler Infrastructure
445bb48eaSTom Stellard //
545bb48eaSTom Stellard // This file is distributed under the University of Illinois Open Source
645bb48eaSTom Stellard // License. See LICENSE.TXT for details.
745bb48eaSTom Stellard //
845bb48eaSTom Stellard /// \file
945bb48eaSTom Stellard //===----------------------------------------------------------------------===//
1045bb48eaSTom Stellard 
1145bb48eaSTom Stellard #include "AMDGPUMCAsmInfo.h"
1201e062f5SMatt Arsenault #include "llvm/ADT/Triple.h"
1345bb48eaSTom Stellard 
1445bb48eaSTom Stellard using namespace llvm;
1501e062f5SMatt Arsenault 
1650f17235SDaniel Sanders AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(const Triple &TT) : MCAsmInfoELF() {
17*12096848SKonstantin Zhuravlyov   CodePointerSize = (TT.getArch() == Triple::amdgcn) ? 8 : 4;
1845bb48eaSTom Stellard   HasSingleParameterDotFile = false;
1945bb48eaSTom Stellard   //===------------------------------------------------------------------===//
20ed1fd7e0SMatt Arsenault   MinInstAlignment = 4;
2101e062f5SMatt Arsenault   MaxInstLength = (TT.getArch() == Triple::amdgcn) ? 8 : 16;
2245bb48eaSTom Stellard   SeparatorString = "\n";
2345bb48eaSTom Stellard   CommentString = ";";
2445bb48eaSTom Stellard   PrivateLabelPrefix = "";
2545bb48eaSTom Stellard   InlineAsmStart = ";#ASMSTART";
2645bb48eaSTom Stellard   InlineAsmEnd = ";#ASMEND";
2745bb48eaSTom Stellard 
2845bb48eaSTom Stellard   //===--- Data Emission Directives -------------------------------------===//
2945bb48eaSTom Stellard   SunStyleELFSectionSwitchSyntax = true;
3045bb48eaSTom Stellard   UsesELFSectionDirectiveForBSS = true;
3145bb48eaSTom Stellard 
3245bb48eaSTom Stellard   //===--- Global Variable Emission Directives --------------------------===//
3345bb48eaSTom Stellard   HasAggressiveSymbolFolding = true;
3445bb48eaSTom Stellard   COMMDirectiveAlignmentIsInBytes = false;
3545bb48eaSTom Stellard   HasNoDeadStrip = true;
3645bb48eaSTom Stellard   WeakRefDirective = ".weakref\t";
3745bb48eaSTom Stellard   //===--- Dwarf Emission Directives -----------------------------------===//
3845bb48eaSTom Stellard   SupportsDebugInformation = true;
3945bb48eaSTom Stellard }
40e135ffd5STom Stellard 
41e135ffd5STom Stellard bool AMDGPUMCAsmInfo::shouldOmitSectionDirective(StringRef SectionName) const {
4200f2f91aSTom Stellard   return SectionName == ".hsatext" || SectionName == ".hsadata_global_agent" ||
4300f2f91aSTom Stellard          SectionName == ".hsadata_global_program" ||
449760f037STom Stellard          SectionName == ".hsarodata_readonly_agent" ||
45e135ffd5STom Stellard          MCAsmInfo::shouldOmitSectionDirective(SectionName);
46e135ffd5STom Stellard }
47