1
//===-- MCAsmInfo.cpp - Asm Info -------------------------------------------==//
3
// The LLVM Compiler Infrastructure
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
8
//===----------------------------------------------------------------------===//
10
// This file defines target asm properties related what form asm statements
13
//===----------------------------------------------------------------------===//
15
#include "llvm/MC/MCAsmInfo.h"
16
#include "llvm/System/DataTypes.h"
21
MCAsmInfo::MCAsmInfo() {
22
HasSubsectionsViaSymbols = false;
23
HasMachoZeroFillDirective = false;
24
HasStaticCtorDtorReferenceInStaticMode = false;
31
PrivateGlobalPrefix = ".";
32
LinkerPrivateGlobalPrefix = "";
33
InlineAsmStart = "APP";
34
InlineAsmEnd = "NO_APP";
36
AllowQuotesInName = false;
37
AllowNameToStartWithDigit = false;
38
ZeroDirective = "\t.zero\t";
39
AsciiDirective = "\t.ascii\t";
40
AscizDirective = "\t.asciz\t";
41
Data8bitsDirective = "\t.byte\t";
42
Data16bitsDirective = "\t.short\t";
43
Data32bitsDirective = "\t.long\t";
44
Data64bitsDirective = "\t.quad\t";
45
SunStyleELFSectionSwitchSyntax = false;
46
UsesELFSectionDirectiveForBSS = false;
47
AlignDirective = "\t.align\t";
48
AlignmentIsInBytes = true;
49
TextAlignFillValue = 0;
51
GlobalDirective = "\t.globl\t";
52
HasSetDirective = true;
53
HasLCOMMDirective = false;
54
COMMDirectiveAlignmentIsInBytes = true;
55
HasDotTypeDotSizeDirective = true;
56
HasSingleParameterDotFile = true;
57
HasNoDeadStrip = false;
60
LinkOnceDirective = 0;
61
HiddenVisibilityAttr = MCSA_Hidden;
62
ProtectedVisibilityAttr = MCSA_Protected;
63
AbsoluteDebugSectionOffsets = false;
64
AbsoluteEHSectionOffsets = false;
66
HasDotLocAndDotFile = false;
67
SupportsDebugInformation = false;
68
ExceptionsType = ExceptionHandling::None;
69
DwarfRequiresFrameSection = true;
70
DwarfUsesInlineInfoSection = false;
71
Is_EHSymbolPrivate = true;
72
GlobalEHDirective = 0;
73
SupportsWeakOmittedEHFrame = true;
74
DwarfSectionOffsetDirective = 0;
79
MCAsmInfo::~MCAsmInfo() {
83
unsigned MCAsmInfo::getULEB128Size(unsigned Value) {
87
Size += sizeof(int8_t);
92
unsigned MCAsmInfo::getSLEB128Size(int Value) {
94
int Sign = Value >> (8 * sizeof(Value) - 1);
98
unsigned Byte = Value & 0x7f;
100
IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0;
101
Size += sizeof(int8_t);