diff options
Diffstat (limited to 'llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp')
-rw-r--r-- | llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp index 76df8cf0f3b2..fa4864299586 100644 --- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp +++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp @@ -17,12 +17,32 @@ SystemZMCAsmInfo::SystemZMCAsmInfo(const Triple &TT) { CalleeSaveStackSlotSize = 8; IsLittleEndian = false; + AssemblerDialect = TT.isOSzOS() ? AD_HLASM : AD_ATT; + MaxInstLength = 6; - CommentString = "#"; + CommentString = AssemblerDialect == AD_HLASM ? "*" : "#"; + RestrictCommentStringToStartOfStatement = (AssemblerDialect == AD_HLASM); + AllowAdditionalComments = (AssemblerDialect == AD_ATT); + AllowAtAtStartOfIdentifier = (AssemblerDialect == AD_HLASM); + AllowDollarAtStartOfIdentifier = (AssemblerDialect == AD_HLASM); + AllowHashAtStartOfIdentifier = (AssemblerDialect == AD_HLASM); + DotIsPC = (AssemblerDialect == AD_ATT); + StarIsPC = (AssemblerDialect == AD_HLASM); + EmitGNUAsmStartIndentationMarker = (AssemblerDialect == AD_ATT); + AllowAtInName = (AssemblerDialect == AD_HLASM); + EmitLabelsInUpperCase = (AssemblerDialect == AD_HLASM); + ZeroDirective = "\t.space\t"; Data64bitsDirective = "\t.quad\t"; UsesELFSectionDirectiveForBSS = true; SupportsDebugInformation = true; ExceptionsType = ExceptionHandling::DwarfCFI; } + +bool SystemZMCAsmInfo::isAcceptableChar(char C) const { + if (AssemblerDialect == AD_ATT) + return MCAsmInfo::isAcceptableChar(C); + + return MCAsmInfo::isAcceptableChar(C) || C == '#'; +} |