[llvm] r202781 - llvm-objdump: Split printRuntimeFunction to two small functions.

Rui Ueyama ruiu at google.com
Mon Mar 3 19:08:46 PST 2014


Author: ruiu
Date: Mon Mar  3 21:08:45 2014
New Revision: 202781

URL: http://llvm.org/viewvc/llvm-project?rev=202781&view=rev
Log:
llvm-objdump: Split printRuntimeFunction to two small functions.

No functionality change.

Modified:
    llvm/trunk/tools/llvm-objdump/COFFDump.cpp

Modified: llvm/trunk/tools/llvm-objdump/COFFDump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/COFFDump.cpp?rev=202781&r1=202780&r2=202781&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/COFFDump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/COFFDump.cpp Mon Mar  3 21:08:45 2014
@@ -413,12 +413,51 @@ static bool getPDataSection(const COFFOb
   return false;
 }
 
+static void printWin64EHUnwindInfo(const Win64EH::UnwindInfo *UI) {
+  // The casts to int are required in order to output the value as number.
+  // Without the casts the value would be interpreted as char data (which
+  // results in garbage output).
+  outs() << "  Version: " << static_cast<int>(UI->getVersion()) << "\n";
+  outs() << "  Flags: " << static_cast<int>(UI->getFlags());
+  if (UI->getFlags()) {
+    if (UI->getFlags() & UNW_ExceptionHandler)
+      outs() << " UNW_ExceptionHandler";
+    if (UI->getFlags() & UNW_TerminateHandler)
+      outs() << " UNW_TerminateHandler";
+    if (UI->getFlags() & UNW_ChainInfo)
+      outs() << " UNW_ChainInfo";
+  }
+  outs() << "\n";
+  outs() << "  Size of prolog: " << static_cast<int>(UI->PrologSize) << "\n";
+  outs() << "  Number of Codes: " << static_cast<int>(UI->NumCodes) << "\n";
+  // Maybe this should move to output of UOP_SetFPReg?
+  if (UI->getFrameRegister()) {
+    outs() << "  Frame register: "
+           << getUnwindRegisterName(UI->getFrameRegister()) << "\n";
+    outs() << "  Frame offset: " << 16 * UI->getFrameOffset() << "\n";
+  } else {
+    outs() << "  No frame pointer used\n";
+  }
+  if (UI->getFlags() & (UNW_ExceptionHandler | UNW_TerminateHandler)) {
+    // FIXME: Output exception handler data
+  } else if (UI->getFlags() & UNW_ChainInfo) {
+    // FIXME: Output chained unwind info
+  }
+
+  if (UI->NumCodes)
+    outs() << "  Unwind Codes:\n";
+
+  printAllUnwindCodes(ArrayRef<UnwindCode>(&UI->UnwindCodes[0], UI->NumCodes));
+
+  outs() << "\n\n";
+  outs().flush();
+}
+
 static void printRuntimeFunction(const COFFObjectFile *Obj,
                                  const RuntimeFunction &RF,
                                  uint64_t SectionOffset,
                                  const std::vector<RelocationRef> &Rels) {
   outs() << "Function Table:\n";
-
   outs() << "  Start Address: ";
   printCOFFSymbolAddress(outs(), Rels,
                          SectionOffset +
@@ -456,44 +495,7 @@ static void printRuntimeFunction(const C
 
   const Win64EH::UnwindInfo *UI = reinterpret_cast<const Win64EH::UnwindInfo *>(
       XContents.data() + UnwindInfoOffset);
-
-  // The casts to int are required in order to output the value as number.
-  // Without the casts the value would be interpreted as char data (which
-  // results in garbage output).
-  outs() << "  Version: " << static_cast<int>(UI->getVersion()) << "\n";
-  outs() << "  Flags: " << static_cast<int>(UI->getFlags());
-  if (UI->getFlags()) {
-    if (UI->getFlags() & UNW_ExceptionHandler)
-      outs() << " UNW_ExceptionHandler";
-    if (UI->getFlags() & UNW_TerminateHandler)
-      outs() << " UNW_TerminateHandler";
-    if (UI->getFlags() & UNW_ChainInfo)
-      outs() << " UNW_ChainInfo";
-  }
-  outs() << "\n";
-  outs() << "  Size of prolog: " << static_cast<int>(UI->PrologSize) << "\n";
-  outs() << "  Number of Codes: " << static_cast<int>(UI->NumCodes) << "\n";
-  // Maybe this should move to output of UOP_SetFPReg?
-  if (UI->getFrameRegister()) {
-    outs() << "  Frame register: "
-           << getUnwindRegisterName(UI->getFrameRegister()) << "\n";
-    outs() << "  Frame offset: " << 16 * UI->getFrameOffset() << "\n";
-  } else {
-    outs() << "  No frame pointer used\n";
-  }
-  if (UI->getFlags() & (UNW_ExceptionHandler | UNW_TerminateHandler)) {
-    // FIXME: Output exception handler data
-  } else if (UI->getFlags() & UNW_ChainInfo) {
-    // FIXME: Output chained unwind info
-  }
-
-  if (UI->NumCodes)
-    outs() << "  Unwind Codes:\n";
-
-  printAllUnwindCodes(ArrayRef<UnwindCode>(&UI->UnwindCodes[0], UI->NumCodes));
-
-  outs() << "\n\n";
-  outs().flush();
+  printWin64EHUnwindInfo(UI);
 }
 
 void llvm::printCOFFUnwindInfo(const COFFObjectFile *Obj) {





More information about the llvm-commits mailing list