xref: /llvm-project/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp (revision 56600c11add12aababdd313c43650facf2a0338f)
1 //===-- SystemZMCAsmInfo.cpp - SystemZ asm properties ---------------------===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "SystemZMCAsmInfo.h"
10 #include "llvm/MC/MCContext.h"
11 
12 using namespace llvm;
13 
14 SystemZMCAsmInfoELF::SystemZMCAsmInfoELF(const Triple &TT) {
15   AssemblerDialect = AD_GNU;
16   CalleeSaveStackSlotSize = 8;
17   CodePointerSize = 8;
18   Data64bitsDirective = "\t.quad\t";
19   ExceptionsType = ExceptionHandling::DwarfCFI;
20   IsLittleEndian = false;
21   MaxInstLength = 6;
22   SupportsDebugInformation = true;
23   UsesELFSectionDirectiveForBSS = true;
24   ZeroDirective = "\t.space\t";
25 }
26 
27 SystemZMCAsmInfoGOFF::SystemZMCAsmInfoGOFF(const Triple &TT) {
28   AllowAdditionalComments = false;
29   AllowAtInName = true;
30   AllowAtAtStartOfIdentifier = true;
31   AllowDollarAtStartOfIdentifier = true;
32   AssemblerDialect = AD_HLASM;
33   CalleeSaveStackSlotSize = 8;
34   CodePointerSize = 8;
35   CommentString = "*";
36   ExceptionsType = ExceptionHandling::ZOS;
37   IsHLASM = true;
38   IsLittleEndian = false;
39   MaxInstLength = 6;
40   SupportsDebugInformation = true;
41 }
42 
43 bool SystemZMCAsmInfoGOFF::isAcceptableChar(char C) const {
44   return MCAsmInfo::isAcceptableChar(C) || C == '#';
45 }
46