MCAsmInfoCOFF.cpp revision 19bac1e08be200c31efd26f0f5fd144c9b3eefd3
1894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman//===-- MCAsmInfoCOFF.cpp - COFF asm properties -----------------*- C++ -*-===// 2894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// 3894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// The LLVM Compiler Infrastructure 4894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// 5894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// This file is distributed under the University of Illinois Open Source 6894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// License. See LICENSE.TXT for details. 7894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// 8894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman//===----------------------------------------------------------------------===// 9894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// 10894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// This file defines target asm properties related what form asm statements 11894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// should take in general on COFF-based targets 12894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman// 13894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman//===----------------------------------------------------------------------===// 14894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman 15894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#include "llvm/MC/MCAsmInfoCOFF.h" 16894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman#include "llvm/ADT/SmallVector.h" 17894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Baumanusing namespace llvm; 18894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman 19894018228b0e0bdbd7aa7e8f47d4a9458789ca82John BaumanMCAsmInfoCOFF::MCAsmInfoCOFF() { 20894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman GlobalPrefix = "_"; 21894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman COMMDirectiveAlignmentIsInBytes = false; 2219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman LCOMMDirectiveType = LCOMM::ByteAlignment; 23894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman HasDotTypeDotSizeDirective = false; 24894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman HasSingleParameterDotFile = false; 25894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman PrivateGlobalPrefix = "L"; // Prefix for private global symbols 26894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman WeakRefDirective = "\t.weak\t"; 27894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman LinkOnceDirective = "\t.linkonce discard\n"; 28894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman 29894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman // Doesn't support visibility: 3019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman HiddenVisibilityAttr = HiddenDeclarationVisibilityAttr = MCSA_Invalid; 3119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman ProtectedVisibilityAttr = MCSA_Invalid; 32894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman 33894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman // Set up DWARF directives 34894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman HasLEB128 = true; // Target asm supports leb128 directives (little-endian) 35894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman SupportsDebugInformation = true; 36894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman DwarfSectionOffsetDirective = "\t.secrel32\t"; 37894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman HasMicrosoftFastStdCallMangling = true; 3819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman 3919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman SupportsDataRegions = false; 40894018228b0e0bdbd7aa7e8f47d4a9458789ca82John Bauman} 41