xref: /aosp_15_r20/external/llvm/lib/MC/MCAsmInfoCOFF.cpp (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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 Worker void MCAsmInfoCOFF::anchor() { }
19*9880d681SAndroid Build Coastguard Worker 
MCAsmInfoCOFF()20*9880d681SAndroid Build Coastguard Worker MCAsmInfoCOFF::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 Worker void MCAsmInfoMicrosoft::anchor() { }
45*9880d681SAndroid Build Coastguard Worker 
MCAsmInfoMicrosoft()46*9880d681SAndroid Build Coastguard Worker MCAsmInfoMicrosoft::MCAsmInfoMicrosoft() {
47*9880d681SAndroid Build Coastguard Worker }
48*9880d681SAndroid Build Coastguard Worker 
anchor()49*9880d681SAndroid Build Coastguard Worker void MCAsmInfoGNUCOFF::anchor() { }
50*9880d681SAndroid Build Coastguard Worker 
MCAsmInfoGNUCOFF()51*9880d681SAndroid Build Coastguard Worker MCAsmInfoGNUCOFF::MCAsmInfoGNUCOFF() {
52*9880d681SAndroid Build Coastguard Worker 
53*9880d681SAndroid Build Coastguard Worker }
54