Line data Source code
1 : //===-- WebAssemblyMCAsmInfo.cpp - WebAssembly asm properties -------------===//
2 : //
3 : // The LLVM Compiler Infrastructure
4 : //
5 : // This file is distributed under the University of Illinois Open Source
6 : // License. See LICENSE.TXT for details.
7 : //
8 : //===----------------------------------------------------------------------===//
9 : ///
10 : /// \file
11 : /// This file contains the declarations of the WebAssemblyMCAsmInfo
12 : /// properties.
13 : ///
14 : //===----------------------------------------------------------------------===//
15 :
16 : #include "WebAssemblyMCAsmInfo.h"
17 : #include "llvm/ADT/Triple.h"
18 :
19 : using namespace llvm;
20 :
21 : #define DEBUG_TYPE "wasm-mc-asm-info"
22 :
23 696 : WebAssemblyMCAsmInfo::~WebAssemblyMCAsmInfo() {}
24 :
25 357 : WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo(const Triple &T) {
26 357 : CodePointerSize = CalleeSaveStackSlotSize = T.isArch64Bit() ? 8 : 4;
27 :
28 : // TODO: What should MaxInstLength be?
29 :
30 357 : UseDataRegionDirectives = true;
31 :
32 : // Use .skip instead of .zero because .zero is confusing when used with two
33 : // arguments (it doesn't actually zero things out).
34 357 : ZeroDirective = "\t.skip\t";
35 :
36 357 : Data8bitsDirective = "\t.int8\t";
37 357 : Data16bitsDirective = "\t.int16\t";
38 357 : Data32bitsDirective = "\t.int32\t";
39 357 : Data64bitsDirective = "\t.int64\t";
40 :
41 357 : AlignmentIsInBytes = false;
42 357 : COMMDirectiveAlignmentIsInBytes = false;
43 357 : LCOMMDirectiveAlignmentType = LCOMM::Log2Alignment;
44 :
45 357 : SupportsDebugInformation = true;
46 :
47 : // TODO: UseIntegratedAssembler?
48 357 : }
|