blob: 8f23585df7e1128f80a4d98abe677a1e940b2caf [file] [log] [blame]
//===-- 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);
}