diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-28 23:22:44 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-28 23:22:44 +0000 |
commit | e5e1f9ad0f3604003ab8fb986c9808104ed2ef02 (patch) | |
tree | 86c187868603385ad7f509e49b61fc00bc8f60c3 /llvm/lib/MC | |
parent | 0710e3771fdd38578499a48e093bc5477f365ab4 (diff) | |
download | bcm5719-llvm-e5e1f9ad0f3604003ab8fb986c9808104ed2ef02.tar.gz bcm5719-llvm-e5e1f9ad0f3604003ab8fb986c9808104ed2ef02.zip |
Make EmitIntValue non virtual.
llvm-svn: 120271
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCAsmStreamer.cpp | 36 | ||||
-rw-r--r-- | llvm/lib/MC/MCLoggingStreamer.cpp | 5 |
2 files changed, 9 insertions, 32 deletions
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp index 8ee5542d369..c03f969e85f 100644 --- a/llvm/lib/MC/MCAsmStreamer.cpp +++ b/llvm/lib/MC/MCAsmStreamer.cpp @@ -149,8 +149,6 @@ public: virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace); - virtual void EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace); - virtual void EmitULEB128Value(const MCExpr *Value, unsigned AddrSpace = 0); virtual void EmitSLEB128Value(const MCExpr *Value, unsigned AddrSpace = 0); @@ -496,10 +494,8 @@ void MCAsmStreamer::EmitBytes(StringRef Data, unsigned AddrSpace) { EmitEOL(); } -/// EmitIntValue - Special case of EmitValue that avoids the client having -/// to pass in a MCExpr for constant integers. -void MCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size, - unsigned AddrSpace) { +void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size, + unsigned AddrSpace) { assert(CurSection && "Cannot emit contents before setting section!"); const char *Directive = 0; switch (Size) { @@ -511,34 +507,20 @@ void MCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size, Directive = MAI.getData64bitsDirective(AddrSpace); // If the target doesn't support 64-bit data, emit as two 32-bit halves. if (Directive) break; + int64_t IntValue; + if (!Value->EvaluateAsAbsolute(IntValue)) + report_fatal_error("Don't know how to emit this value."); if (isLittleEndian()) { - EmitIntValue((uint32_t)(Value >> 0 ), 4, AddrSpace); - EmitIntValue((uint32_t)(Value >> 32), 4, AddrSpace); + EmitIntValue((uint32_t)(IntValue >> 0 ), 4, AddrSpace); + EmitIntValue((uint32_t)(IntValue >> 32), 4, AddrSpace); } else { - EmitIntValue((uint32_t)(Value >> 32), 4, AddrSpace); - EmitIntValue((uint32_t)(Value >> 0 ), 4, AddrSpace); + EmitIntValue((uint32_t)(IntValue >> 32), 4, AddrSpace); + EmitIntValue((uint32_t)(IntValue >> 0 ), 4, AddrSpace); } return; } assert(Directive && "Invalid size for machine code value!"); - OS << Directive << truncateToSize(Value, Size); - EmitEOL(); -} - -void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size, - unsigned AddrSpace) { - assert(CurSection && "Cannot emit contents before setting section!"); - const char *Directive = 0; - switch (Size) { - default: break; - case 1: Directive = MAI.getData8bitsDirective(AddrSpace); break; - case 2: Directive = MAI.getData16bitsDirective(AddrSpace); break; - case 4: Directive = MAI.getData32bitsDirective(AddrSpace); break; - case 8: Directive = MAI.getData64bitsDirective(AddrSpace); break; - } - - assert(Directive && "Invalid size for machine code value!"); OS << Directive << *Value; EmitEOL(); } diff --git a/llvm/lib/MC/MCLoggingStreamer.cpp b/llvm/lib/MC/MCLoggingStreamer.cpp index 84aebd96498..38cb5c708c0 100644 --- a/llvm/lib/MC/MCLoggingStreamer.cpp +++ b/llvm/lib/MC/MCLoggingStreamer.cpp @@ -152,11 +152,6 @@ public: return Child->EmitValue(Value, Size, AddrSpace); } - virtual void EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace) { - LogCall("EmitIntValue"); - return Child->EmitIntValue(Value, Size, AddrSpace); - } - virtual void EmitULEB128Value(const MCExpr *Value, unsigned AddrSpace = 0) { LogCall("EmitULEB128Value"); |