summaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCAsmInfoXCOFF.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/MC/MCAsmInfoXCOFF.cpp')
-rw-r--r--llvm/lib/MC/MCAsmInfoXCOFF.cpp28
1 files changed, 21 insertions, 7 deletions
diff --git a/llvm/lib/MC/MCAsmInfoXCOFF.cpp b/llvm/lib/MC/MCAsmInfoXCOFF.cpp
index c51cdff59fa0a..b5c5bb3ace8ed 100644
--- a/llvm/lib/MC/MCAsmInfoXCOFF.cpp
+++ b/llvm/lib/MC/MCAsmInfoXCOFF.cpp
@@ -7,6 +7,7 @@
//===----------------------------------------------------------------------===//
#include "llvm/MC/MCAsmInfoXCOFF.h"
+#include "llvm/ADT/StringExtras.h"
using namespace llvm;
@@ -14,16 +15,26 @@ void MCAsmInfoXCOFF::anchor() {}
MCAsmInfoXCOFF::MCAsmInfoXCOFF() {
IsLittleEndian = false;
- HasDotTypeDotSizeDirective = false;
- COMMDirectiveAlignmentIsInBytes = false;
- LCOMMDirectiveAlignmentType = LCOMM::Log2Alignment;
+ HasVisibilityOnlyWithLinkage = true;
+ PrivateGlobalPrefix = "L..";
+ PrivateLabelPrefix = "L..";
+ SupportsQuotedNames = false;
UseDotAlignForAlignment = true;
+ ZeroDirective = "\t.space\t";
+ ZeroDirectiveSupportsNonZeroValue = false;
AsciiDirective = nullptr; // not supported
AscizDirective = nullptr; // not supported
+
+ // Use .vbyte for data definition to avoid directives that apply an implicit
+ // alignment.
+ Data16bitsDirective = "\t.vbyte\t2, ";
+ Data32bitsDirective = "\t.vbyte\t4, ";
+
+ COMMDirectiveAlignmentIsInBytes = false;
+ LCOMMDirectiveAlignmentType = LCOMM::Log2Alignment;
+ HasDotTypeDotSizeDirective = false;
+ UseIntegratedAssembler = false;
NeedsFunctionDescriptors = true;
- HasDotLGloblDirective = true;
- Data64bitsDirective = "\t.llong\t";
- SupportsQuotedNames = false;
}
bool MCAsmInfoXCOFF::isAcceptableChar(char C) const {
@@ -32,5 +43,8 @@ bool MCAsmInfoXCOFF::isAcceptableChar(char C) const {
if (C == '[' || C == ']')
return true;
- return MCAsmInfo::isAcceptableChar(C);
+ // For AIX assembler, symbols may consist of numeric digits,
+ // underscores, periods, uppercase or lowercase letters, or
+ // any combination of these.
+ return isAlnum(C) || C == '_' || C == '.';
}