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/BinaryFormat/Dwarf.h"
15#include "llvm/MC/MCExpr.h"
16#include "llvm/MC/MCStreamer.h"
17#include "llvm/MC/MCTargetOptions.h"
18#include "llvm/TargetParser/Triple.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