aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp')
-rw-r--r--llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp b/llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
new file mode 100644
index 0000000000000..9f29fc092c697
--- /dev/null
+++ b/llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
@@ -0,0 +1,40 @@
+//===- VEMCAsmInfo.cpp - VE 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 VEMCAsmInfo properties.
+//
+//===----------------------------------------------------------------------===//
+
+#include "VEMCAsmInfo.h"
+#include "llvm/ADT/Triple.h"
+#include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/MC/MCExpr.h"
+#include "llvm/MC/MCStreamer.h"
+#include "llvm/MC/MCTargetOptions.h"
+
+using namespace llvm;
+
+void VEELFMCAsmInfo::anchor() {}
+
+VEELFMCAsmInfo::VEELFMCAsmInfo(const Triple &TheTriple) {
+
+ CodePointerSize = CalleeSaveStackSlotSize = 8;
+ MaxInstLength = MinInstAlignment = 8;
+
+ // VE uses ".*byte" directive for unaligned data.
+ Data8bitsDirective = "\t.byte\t";
+ Data16bitsDirective = "\t.2byte\t";
+ Data32bitsDirective = "\t.4byte\t";
+ Data64bitsDirective = "\t.8byte\t";
+
+ // Uses '.section' before '.bss' directive. VE requires this although
+ // assembler manual says sinple '.bss' is supported.
+ UsesELFSectionDirectiveForBSS = true;
+
+ SupportsDebugInformation = true;
+}