diff --git a/llvm/tools/llvm-readobj/StreamWriter.cpp b/llvm/tools/llvm-readobj/StreamWriter.cpp
index 390b05e..8718112 100644
--- a/llvm/tools/llvm-readobj/StreamWriter.cpp
+++ b/llvm/tools/llvm-readobj/StreamWriter.cpp
@@ -8,22 +8,23 @@
 namespace llvm {
 
 raw_ostream &operator<<(raw_ostream &OS, const HexNumber& Value) {
-  OS << "0x" << to_hexString(Value.Value);
-  return OS;
-}
+  uint64_t N = Value.Value;
+  // Zero is a special case.
+  if (N == 0)
+    return OS << "0x0";
 
-const std::string to_hexString(uint64_t Value, bool UpperCase) {
-  std::string number;
-  llvm::raw_string_ostream stream(number);
-  stream << format_hex_no_prefix(Value, 1, UpperCase);
-  return stream.str();
-}
+  char NumberBuffer[20];
+  char *EndPtr = NumberBuffer + sizeof(NumberBuffer);
+  char *CurPtr = EndPtr;
 
-const std::string to_string(uint64_t Value) {
-  std::string number;
-  llvm::raw_string_ostream stream(number);
-  stream << format_decimal(Value, 1);
-  return stream.str();
+  while (N) {
+    uintptr_t X = N % 16;
+    *--CurPtr = (X < 10 ? '0' + X : 'A' + X - 10);
+    N /= 16;
+  }
+
+  OS << "0x";
+  return OS.write(CurPtr, EndPtr - CurPtr);
 }
 
 void StreamWriter::printBinaryImpl(StringRef Label, StringRef Str,
