//===-- HexagonMCAsmInfo.cpp - Hexagon asm properties ---------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file contains the declarations of the HexagonMCAsmInfo properties. // //===----------------------------------------------------------------------===// #include "HexagonMCAsmInfo.h" #include "MCTargetDesc/HexagonMCExpr.h" #include "llvm/MC/MCExpr.h" using namespace llvm; const MCAsmInfo::AtSpecifier atSpecifiers[] = { {HexagonMCExpr::VK_DTPREL, "DTPREL"}, {HexagonMCExpr::VK_GD_GOT, "GDGOT"}, {HexagonMCExpr::VK_GD_PLT, "GDPLT"}, {HexagonMCExpr::VK_GOT, "GOT"}, {HexagonMCExpr::VK_GOTREL, "GOTREL"}, {HexagonMCExpr::VK_IE, "IE"}, {HexagonMCExpr::VK_IE_GOT, "IEGOT"}, {HexagonMCExpr::VK_LD_GOT, "LDGOT"}, {HexagonMCExpr::VK_LD_PLT, "LDPLT"}, {HexagonMCExpr::VK_PCREL, "PCREL"}, {HexagonMCExpr::VK_PLT, "PLT"}, {HexagonMCExpr::VK_TPREL, "TPREL"}, }; // Pin the vtable to this file. void HexagonMCAsmInfo::anchor() {} HexagonMCAsmInfo::HexagonMCAsmInfo(const Triple &TT) { Data16bitsDirective = "\t.half\t"; Data32bitsDirective = "\t.word\t"; Data64bitsDirective = nullptr; // .xword is only supported by V9. CommentString = "//"; SupportsDebugInformation = true; LCOMMDirectiveAlignmentType = LCOMM::ByteAlignment; InlineAsmStart = "# InlineAsm Start"; InlineAsmEnd = "# InlineAsm End"; UsesSetToEquateSymbol = true; ZeroDirective = "\t.space\t"; AscizDirective = "\t.string\t"; MinInstAlignment = 4; UsesELFSectionDirectiveForBSS = true; ExceptionsType = ExceptionHandling::DwarfCFI; UseLogicalShr = false; initializeAtSpecifiers(atSpecifiers); }