Home | History | Annotate | Download | only in MC
      1 //===-- MCAsmInfoCOFF.cpp - COFF asm properties -----------------*- C++ -*-===//
      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 // This file defines target asm properties related what form asm statements
     11 // should take in general on COFF-based targets
     12 //
     13 //===----------------------------------------------------------------------===//
     14 
     15 #include "llvm/MC/MCAsmInfoCOFF.h"
     16 #include "llvm/ADT/SmallVector.h"
     17 using namespace llvm;
     18 
     19 MCAsmInfoCOFF::MCAsmInfoCOFF() {
     20   GlobalPrefix = "_";
     21   COMMDirectiveAlignmentIsInBytes = false;
     22   LCOMMDirectiveType = LCOMM::ByteAlignment;
     23   HasDotTypeDotSizeDirective = false;
     24   HasSingleParameterDotFile = false;
     25   PrivateGlobalPrefix = "L";  // Prefix for private global symbols
     26   WeakRefDirective = "\t.weak\t";
     27   LinkOnceDirective = "\t.linkonce discard\n";
     28 
     29   // Doesn't support visibility:
     30   HiddenVisibilityAttr = HiddenDeclarationVisibilityAttr = MCSA_Invalid;
     31   ProtectedVisibilityAttr = MCSA_Invalid;
     32 
     33   // Set up DWARF directives
     34   HasLEB128 = true;  // Target asm supports leb128 directives (little-endian)
     35   SupportsDebugInformation = true;
     36   DwarfSectionOffsetDirective = "\t.secrel32\t";
     37   HasMicrosoftFastStdCallMangling = true;
     38 
     39   SupportsDataRegions = false;
     40 }
     41