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