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#include "llvm/MC/MCSectionELF.h"
12
13using namespace llvm;
14
15SystemZMCAsmInfoELF::SystemZMCAsmInfoELF(const Triple &TT) {
16  AssemblerDialect = AD_ATT;
17  CalleeSaveStackSlotSize = 8;
18  CodePointerSize = 8;
19  Data64bitsDirective = "\t.quad\t";
20  ExceptionsType = ExceptionHandling::DwarfCFI;
21  IsLittleEndian = false;
22  MaxInstLength = 6;
23  SupportsDebugInformation = true;
24  UsesELFSectionDirectiveForBSS = true;
25  ZeroDirective = "\t.space\t";
26}
27
28SystemZMCAsmInfoGOFF::SystemZMCAsmInfoGOFF(const Triple &TT) {
29  AllowAdditionalComments = false;
30  AllowAtInName = true;
31  AllowAtAtStartOfIdentifier = true;
32  AllowDollarAtStartOfIdentifier = true;
33  AllowHashAtStartOfIdentifier = true;
34  AssemblerDialect = AD_HLASM;
35  CalleeSaveStackSlotSize = 8;
36  CodePointerSize = 8;
37  CommentString = "*";
38  DotIsPC = false;
39  EmitGNUAsmStartIndentationMarker = false;
40  EmitLabelsInUpperCase = true;
41  IsLittleEndian = false;
42  MaxInstLength = 6;
43  RestrictCommentStringToStartOfStatement = true;
44  StarIsPC = true;
45  SupportsDebugInformation = true;
46}
47
48bool SystemZMCAsmInfoGOFF::isAcceptableChar(char C) const {
49  return MCAsmInfo::isAcceptableChar(C) || C == '#';
50}
51