diff options
author | Devang Patel <dpatel@apple.com> | 2010-12-02 21:32:30 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-12-02 21:32:30 +0000 |
commit | ee4854faf3a4dc622dcb75fe352e33fb32385b3f (patch) | |
tree | 98679527ad6b30a6ebc093a712608a52bc8b3d96 /lib/MC/MCAsmStreamer.cpp | |
parent | 1d9582cf96b666f3d45d504f2697eb82c5fc9f25 (diff) |
Use set directive for StartMinusEndExpr.
This is a fix for llvm-gcc-i386-darwin9 buildbot failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120742 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCAsmStreamer.cpp')
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index 02b666235e..30a3105bd7 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -147,7 +147,8 @@ public: virtual void EmitBytes(StringRef Data, unsigned AddrSpace); - virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace); + virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace, + bool UseSet = false); virtual void EmitULEB128Value(const MCExpr *Value, unsigned AddrSpace = 0); @@ -495,7 +496,7 @@ void MCAsmStreamer::EmitBytes(StringRef Data, unsigned AddrSpace) { } void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size, - unsigned AddrSpace) { + unsigned AddrSpace, bool UseSet) { assert(CurSection && "Cannot emit contents before setting section!"); const char *Directive = 0; switch (Size) { @@ -521,6 +522,14 @@ void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size, } assert(Directive && "Invalid size for machine code value!"); + if (UseSet && MAI.hasSetDirective()) { + MCSymbol *SetLabel = getContext().CreateTempSymbol(); + EmitAssignment(SetLabel, Value); + OS << Directive << *SetLabel; + EmitEOL(); + return; + } + OS << Directive << *Value; EmitEOL(); } |