1*9880d681SAndroid Build Coastguard Worker //===-- MCAsmInfoCOFF.cpp - COFF asm properties -----------------*- C++ -*-===// 2*9880d681SAndroid Build Coastguard Worker // 3*9880d681SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker // 5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker // 8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker // 10*9880d681SAndroid Build Coastguard Worker // This file defines target asm properties related what form asm statements 11*9880d681SAndroid Build Coastguard Worker // should take in general on COFF-based targets 12*9880d681SAndroid Build Coastguard Worker // 13*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker #include "llvm/MC/MCAsmInfoCOFF.h" 16*9880d681SAndroid Build Coastguard Worker using namespace llvm; 17*9880d681SAndroid Build Coastguard Worker anchor()18*9880d681SAndroid Build Coastguard Workervoid MCAsmInfoCOFF::anchor() { } 19*9880d681SAndroid Build Coastguard Worker MCAsmInfoCOFF()20*9880d681SAndroid Build Coastguard WorkerMCAsmInfoCOFF::MCAsmInfoCOFF() { 21*9880d681SAndroid Build Coastguard Worker // MingW 4.5 and later support .comm with log2 alignment, but .lcomm uses byte 22*9880d681SAndroid Build Coastguard Worker // alignment. 23*9880d681SAndroid Build Coastguard Worker COMMDirectiveAlignmentIsInBytes = false; 24*9880d681SAndroid Build Coastguard Worker LCOMMDirectiveAlignmentType = LCOMM::ByteAlignment; 25*9880d681SAndroid Build Coastguard Worker HasDotTypeDotSizeDirective = false; 26*9880d681SAndroid Build Coastguard Worker HasSingleParameterDotFile = false; 27*9880d681SAndroid Build Coastguard Worker WeakRefDirective = "\t.weak\t"; 28*9880d681SAndroid Build Coastguard Worker HasLinkOnceDirective = true; 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker // Doesn't support visibility: 31*9880d681SAndroid Build Coastguard Worker HiddenVisibilityAttr = HiddenDeclarationVisibilityAttr = MCSA_Invalid; 32*9880d681SAndroid Build Coastguard Worker ProtectedVisibilityAttr = MCSA_Invalid; 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker // Set up DWARF directives 35*9880d681SAndroid Build Coastguard Worker SupportsDebugInformation = true; 36*9880d681SAndroid Build Coastguard Worker NeedsDwarfSectionOffsetDirective = true; 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker UseIntegratedAssembler = true; 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Worker // At least MSVC inline-asm does AShr. 41*9880d681SAndroid Build Coastguard Worker UseLogicalShr = false; 42*9880d681SAndroid Build Coastguard Worker } 43*9880d681SAndroid Build Coastguard Worker anchor()44*9880d681SAndroid Build Coastguard Workervoid MCAsmInfoMicrosoft::anchor() { } 45*9880d681SAndroid Build Coastguard Worker MCAsmInfoMicrosoft()46*9880d681SAndroid Build Coastguard WorkerMCAsmInfoMicrosoft::MCAsmInfoMicrosoft() { 47*9880d681SAndroid Build Coastguard Worker } 48*9880d681SAndroid Build Coastguard Worker anchor()49*9880d681SAndroid Build Coastguard Workervoid MCAsmInfoGNUCOFF::anchor() { } 50*9880d681SAndroid Build Coastguard Worker MCAsmInfoGNUCOFF()51*9880d681SAndroid Build Coastguard WorkerMCAsmInfoGNUCOFF::MCAsmInfoGNUCOFF() { 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker } 54