• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- SystemZMCAsmInfo.cpp - SystemZ asm properties ---------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #include "SystemZMCAsmInfo.h"
11 #include "llvm/MC/MCContext.h"
12 #include "llvm/MC/MCSectionELF.h"
13 
14 using namespace llvm;
15 
SystemZMCAsmInfo(StringRef TT)16 SystemZMCAsmInfo::SystemZMCAsmInfo(StringRef TT) {
17   PointerSize = 8;
18   CalleeSaveStackSlotSize = 8;
19   IsLittleEndian = false;
20 
21   CommentString = "#";
22   ZeroDirective = "\t.space\t";
23   Data64bitsDirective = "\t.quad\t";
24   UsesELFSectionDirectiveForBSS = true;
25   SupportsDebugInformation = true;
26   HasLEB128 = true;
27   ExceptionsType = ExceptionHandling::DwarfCFI;
28 }
29 
30 const MCSection *
getNonexecutableStackSection(MCContext & Ctx) const31 SystemZMCAsmInfo::getNonexecutableStackSection(MCContext &Ctx) const {
32   return Ctx.getELFSection(".note.GNU-stack", ELF::SHT_PROGBITS,
33                            0, SectionKind::getMetadata());
34 }
35