/// 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.
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 {
GPRel32Directive = 0;
GlobalDirective = "\t.globl\t";
HasSetDirective = true;
- NeedsSetToChangeDiffSize = false;
+ HasAggressiveSymbolFolding = true;
HasLCOMMDirective = false;
COMMDirectiveAlignmentIsInBytes = true;
HasDotTypeDotSizeDirective = true;
// 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;
void MCStreamer::EmitAbsValue(const MCExpr *Value, unsigned Size,
unsigned AddrSpace) {
- if (!getContext().getAsmInfo().needsSetToChangeDiffSize()) {
+ if (getContext().getAsmInfo().hasAggressiveSymbolFolding()) {
EmitValue(Value, Size, AddrSpace);
return;
}