1//===- VEMCAsmInfo.cpp - VE 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// This file contains the declarations of the VEMCAsmInfo properties.
10//
11//===----------------------------------------------------------------------===//
12
13#include "VEMCAsmInfo.h"
14#include "llvm/ADT/Triple.h"
15#include "llvm/BinaryFormat/Dwarf.h"
16#include "llvm/MC/MCExpr.h"
17#include "llvm/MC/MCStreamer.h"
18#include "llvm/MC/MCTargetOptions.h"
19
20using namespace llvm;
21
22void VEELFMCAsmInfo::anchor() {}
23
24VEELFMCAsmInfo::VEELFMCAsmInfo(const Triple &TheTriple) {
25
26  CodePointerSize = CalleeSaveStackSlotSize = 8;
27  MaxInstLength = MinInstAlignment = 8;
28
29  // VE uses ".*byte" directive for unaligned data.
30  Data8bitsDirective = "\t.byte\t";
31  Data16bitsDirective = "\t.2byte\t";
32  Data32bitsDirective = "\t.4byte\t";
33  Data64bitsDirective = "\t.8byte\t";
34
35  // Uses '.section' before '.bss' directive.  VE requires this although
36  // assembler manual says sinple '.bss' is supported.
37  UsesELFSectionDirectiveForBSS = true;
38
39  SupportsDebugInformation = true;
40}
41