xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp (revision 06c3fb2749bda94cb5201f81ffdb8fa6c3161b2e)
1480093f4SDimitry Andric //===- VEMCAsmInfo.cpp - VE asm properties --------------------------------===//
2480093f4SDimitry Andric //
3480093f4SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4480093f4SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5480093f4SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6480093f4SDimitry Andric //
7480093f4SDimitry Andric //===----------------------------------------------------------------------===//
8480093f4SDimitry Andric //
9480093f4SDimitry Andric // This file contains the declarations of the VEMCAsmInfo properties.
10480093f4SDimitry Andric //
11480093f4SDimitry Andric //===----------------------------------------------------------------------===//
12480093f4SDimitry Andric 
13480093f4SDimitry Andric #include "VEMCAsmInfo.h"
14480093f4SDimitry Andric #include "llvm/BinaryFormat/Dwarf.h"
15480093f4SDimitry Andric #include "llvm/MC/MCExpr.h"
16480093f4SDimitry Andric #include "llvm/MC/MCStreamer.h"
17480093f4SDimitry Andric #include "llvm/MC/MCTargetOptions.h"
18*06c3fb27SDimitry Andric #include "llvm/TargetParser/Triple.h"
19480093f4SDimitry Andric 
20480093f4SDimitry Andric using namespace llvm;
21480093f4SDimitry Andric 
anchor()22480093f4SDimitry Andric void VEELFMCAsmInfo::anchor() {}
23480093f4SDimitry Andric 
VEELFMCAsmInfo(const Triple & TheTriple)24480093f4SDimitry Andric VEELFMCAsmInfo::VEELFMCAsmInfo(const Triple &TheTriple) {
25480093f4SDimitry Andric 
26480093f4SDimitry Andric   CodePointerSize = CalleeSaveStackSlotSize = 8;
27480093f4SDimitry Andric   MaxInstLength = MinInstAlignment = 8;
28480093f4SDimitry Andric 
29480093f4SDimitry Andric   // VE uses ".*byte" directive for unaligned data.
30480093f4SDimitry Andric   Data8bitsDirective = "\t.byte\t";
31480093f4SDimitry Andric   Data16bitsDirective = "\t.2byte\t";
32480093f4SDimitry Andric   Data32bitsDirective = "\t.4byte\t";
33480093f4SDimitry Andric   Data64bitsDirective = "\t.8byte\t";
34480093f4SDimitry Andric 
35480093f4SDimitry Andric   // Uses '.section' before '.bss' directive.  VE requires this although
36480093f4SDimitry Andric   // assembler manual says sinple '.bss' is supported.
37480093f4SDimitry Andric   UsesELFSectionDirectiveForBSS = true;
38480093f4SDimitry Andric 
39480093f4SDimitry Andric   SupportsDebugInformation = true;
40480093f4SDimitry Andric }
41