diff options
-rw-r--r-- | include/llvm/MC/MCAsmInfo.h | 10 | ||||
-rw-r--r-- | lib/MC/MCAsmInfo.cpp | 2 | ||||
-rw-r--r-- | lib/MC/MCAsmInfoDarwin.cpp | 4 | ||||
-rw-r--r-- | lib/MC/MCStreamer.cpp | 2 |
4 files changed, 11 insertions, 7 deletions
diff --git a/include/llvm/MC/MCAsmInfo.h b/include/llvm/MC/MCAsmInfo.h index 0e6c4e7..fb80cc4 100644 --- a/include/llvm/MC/MCAsmInfo.h +++ b/include/llvm/MC/MCAsmInfo.h @@ -197,12 +197,12 @@ namespace llvm { /// HasSetDirective - True if the assembler supports the .set directive. bool HasSetDirective; // Defaults to true. - /// NeedsSetToChangeDiffSize - True if the assembler requires that we do + /// HasAggressiveSymbolFolding - False if the assembler requires that we use /// Lc = a - b /// .long Lc - /// instead of doing + /// instead of /// .long a - b - bool NeedsSetToChangeDiffSize; // Defaults to false. + bool HasAggressiveSymbolFolding; // Defaults to true. /// HasLCOMMDirective - This is true if the target supports the .lcomm /// directive. @@ -407,7 +407,9 @@ namespace llvm { return ExternDirective; } bool hasSetDirective() const { return HasSetDirective; } - bool needsSetToChangeDiffSize() const { return NeedsSetToChangeDiffSize; } + bool hasAggressiveSymbolFolding() const { + return HasAggressiveSymbolFolding; + } bool hasLCOMMDirective() const { return HasLCOMMDirective; } bool hasDotTypeDotSizeDirective() const {return HasDotTypeDotSizeDirective;} bool getCOMMDirectiveAlignmentIsInBytes() const { diff --git a/lib/MC/MCAsmInfo.cpp b/lib/MC/MCAsmInfo.cpp index 1bc63d0..cc1afbd 100644 --- a/lib/MC/MCAsmInfo.cpp +++ b/lib/MC/MCAsmInfo.cpp @@ -54,7 +54,7 @@ MCAsmInfo::MCAsmInfo() { GPRel32Directive = 0; GlobalDirective = "\t.globl\t"; HasSetDirective = true; - NeedsSetToChangeDiffSize = false; + HasAggressiveSymbolFolding = true; HasLCOMMDirective = false; COMMDirectiveAlignmentIsInBytes = true; HasDotTypeDotSizeDirective = true; diff --git a/lib/MC/MCAsmInfoDarwin.cpp b/lib/MC/MCAsmInfoDarwin.cpp index a382741..13776f0 100644 --- a/lib/MC/MCAsmInfoDarwin.cpp +++ b/lib/MC/MCAsmInfoDarwin.cpp @@ -41,7 +41,9 @@ MCAsmInfoDarwin::MCAsmInfoDarwin() { // FIXME: Darwin 10 and newer don't need this. LinkerRequiresNonEmptyDwarfLines = true; - NeedsSetToChangeDiffSize = true; + // FIXME: Change this once MC is the system assembler. + HasAggressiveSymbolFolding = false; + HiddenVisibilityAttr = MCSA_PrivateExtern; // Doesn't support protected visibility. ProtectedVisibilityAttr = MCSA_Global; diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp index 076b4d6..68146de 100644 --- a/lib/MC/MCStreamer.cpp +++ b/lib/MC/MCStreamer.cpp @@ -77,7 +77,7 @@ void MCStreamer::EmitSLEB128IntValue(int64_t Value, unsigned AddrSpace) { void MCStreamer::EmitAbsValue(const MCExpr *Value, unsigned Size, unsigned AddrSpace) { - if (!getContext().getAsmInfo().needsSetToChangeDiffSize()) { + if (getContext().getAsmInfo().hasAggressiveSymbolFolding()) { EmitValue(Value, Size, AddrSpace); return; } |