LLVM API Documentation
00001 //===-- MCAsmInfoCOFF.cpp - COFF asm properties -----------------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file defines target asm properties related what form asm statements 00011 // should take in general on COFF-based targets 00012 // 00013 //===----------------------------------------------------------------------===// 00014 00015 #include "llvm/MC/MCAsmInfoCOFF.h" 00016 using namespace llvm; 00017 00018 void MCAsmInfoCOFF::anchor() { } 00019 00020 MCAsmInfoCOFF::MCAsmInfoCOFF() { 00021 GlobalPrefix = "_"; 00022 // MingW 4.5 and later support .comm with log2 alignment, but .lcomm uses byte 00023 // alignment. 00024 COMMDirectiveAlignmentIsInBytes = false; 00025 LCOMMDirectiveAlignmentType = LCOMM::ByteAlignment; 00026 HasDotTypeDotSizeDirective = false; 00027 HasSingleParameterDotFile = false; 00028 PrivateGlobalPrefix = "L"; // Prefix for private global symbols 00029 WeakRefDirective = "\t.weak\t"; 00030 LinkOnceDirective = "\t.linkonce discard\n"; 00031 00032 // Doesn't support visibility: 00033 HiddenVisibilityAttr = HiddenDeclarationVisibilityAttr = MCSA_Invalid; 00034 ProtectedVisibilityAttr = MCSA_Invalid; 00035 00036 // Set up DWARF directives 00037 HasLEB128 = true; // Target asm supports leb128 directives (little-endian) 00038 SupportsDebugInformation = true; 00039 HasMicrosoftFastStdCallMangling = true; 00040 NeedsDwarfSectionOffsetDirective = true; 00041 } 00042 00043 void MCAsmInfoMicrosoft::anchor() { } 00044 00045 MCAsmInfoMicrosoft::MCAsmInfoMicrosoft() { 00046 AllowQuotesInName = true; 00047 } 00048 00049 void MCAsmInfoGNUCOFF::anchor() { } 00050 00051 MCAsmInfoGNUCOFF::MCAsmInfoGNUCOFF() { 00052 00053 }