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 | |
| 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')
| -rw-r--r-- | llvm/lib/MC/MCAsmStreamer.cpp | 36 | ||||
| -rw-r--r-- | llvm/lib/MC/MCLoggingStreamer.cpp | 5 | ||||
| -rw-r--r-- | llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp | 35 | 
3 files changed, 18 insertions, 58 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"); diff --git a/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp b/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp index 3f9e8b4f329..864781119ee 100644 --- a/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp +++ b/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp @@ -144,7 +144,6 @@ public:    virtual void EmitBytes(StringRef Data, unsigned AddrSpace);    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);    virtual void EmitGPRel32Value(const MCExpr *Value); @@ -350,10 +349,8 @@ void PTXMCAsmStreamer::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 PTXMCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size, -                                    unsigned AddrSpace) { +void PTXMCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size, +                                 unsigned AddrSpace) {    assert(CurSection && "Cannot emit contents before setting section!");    const char *Directive = 0;    switch (Size) { @@ -365,34 +362,20 @@ void PTXMCAsmStreamer::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 PTXMCAsmStreamer::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();  }  | 

