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 /// \brief This file contains the declarations of the WebAssemblyMCAsmInfo 12 /// properties. 13 /// 14 //===----------------------------------------------------------------------===// 15 16 #include "WebAssemblyMCAsmInfo.h" 17 #include "llvm/ADT/Triple.h" 18 #include "llvm/Support/CommandLine.h" 19 using namespace llvm; 20 21 #define DEBUG_TYPE "wasm-mc-asm-info" 22 23 WebAssemblyMCAsmInfo::~WebAssemblyMCAsmInfo() {} 24 25 WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo(const Triple &T) { 26 PointerSize = CalleeSaveStackSlotSize = T.isArch64Bit() ? 8 : 4; 27 28 // TODO: What should MaxInstLength be? 29 30 // The s-expression format of WebAssembly uses LISP-style comments. 31 CommentString = ";;"; 32 33 PrivateGlobalPrefix = ""; 34 PrivateLabelPrefix = ""; 35 36 UseDataRegionDirectives = true; 37 38 Data8bitsDirective = "\t.int8\t"; 39 Data16bitsDirective = "\t.int16\t"; 40 Data32bitsDirective = "\t.int32\t"; 41 Data64bitsDirective = "\t.int64\t"; 42 43 AlignmentIsInBytes = false; 44 COMMDirectiveAlignmentIsInBytes = false; 45 LCOMMDirectiveAlignmentType = LCOMM::Log2Alignment; 46 47 HasDotTypeDotSizeDirective = false; 48 HasSingleParameterDotFile = false; 49 50 SupportsDebugInformation = true; 51 52 // For now, WebAssembly does not support exceptions. 53 ExceptionsType = ExceptionHandling::None; 54 55 // FIXME: modify AsmPrinter to be more flexible, and fix other virtual ISAs. 56 WeakDirective = "\t;; .weak\t"; 57 GlobalDirective = "\t;; .globl\t"; 58 59 // TODO: UseIntegratedAssembler? 60 } 61