llvm-objdump -m -D should disassemble all text segments

Summary:
When running llvm-objdump with the -macho option objdump will by default
disassemble only the __TEXT,__text section (or __TEXT_EXEC,__text when
disassembling MH_KEXT_BUNDLE files). The -disassemble-all option is
treated no diferently than -disassemble.

This change upates llvm-objdump's MachO parsing code to disassemble all
__text sections found in a file when -disassemble-all is specified. This
is useful for disassembling files with more than one __text section, or
when disassembling files whose __text section is not present in __TEXT.

I added a lit test case that verifies "llvm-objdump -m -d" and 
"llvm-objdump -m -D" produce the expected results on a reference binary. 
I also updated the CommandGuide documentation for llvm-objdump.rst and
verified it renders correctly as man and html.

rdar://42899338

Reviewers: ab, pete, lhames

Reviewed By: lhames

Subscribers: rupprecht, llvm-commits

Differential Revision: https://reviews.llvm.org/D56649

llvm-svn: 351238
diff --git a/llvm/docs/CommandGuide/llvm-objdump.rst b/llvm/docs/CommandGuide/llvm-objdump.rst
index 0d02915..c3e7c16 100644
--- a/llvm/docs/CommandGuide/llvm-objdump.rst
+++ b/llvm/docs/CommandGuide/llvm-objdump.rst
@@ -16,12 +16,19 @@
 
 COMMANDS
 --------
-At least one of the following commands are required, and some commands can be combined with other commands:
+At least one of the following commands are required, and some commands can be
+combined with other commands:
 
-.. option:: -disassemble
+.. option:: -d, -disassemble
 
-  Display assembler mnemonics for the machine instructions
- 
+  Display assembler mnemonics for the machine instructions. Disassembles all
+  text sections found in the input file(s).
+
+.. option:: -D, -disassemble-all
+
+  Display assembler mnemonics for the machine instructions. Disassembles all
+  sections found in the input file(s).
+
 .. option:: -help
 
   Display usage information and exit. Does not stack with other commands.
@@ -45,14 +52,14 @@
 .. option:: -version
 
   Display the version of this program. Does not stack with other commands.
-  
+
 OPTIONS
 -------
 :program:`llvm-objdump` supports the following options:
 
 .. option:: -arch=<architecture>
 
-  Specify the architecture to disassemble. see -version for available
+  Specify the architecture to disassemble. see ``-version`` for available
   architectures.
 
 .. option:: -cfg
@@ -68,14 +75,15 @@
 
   Print line information from debug info if available.
 
-.. option:: -macho
+.. option:: -m, -macho
 
-  Use Mach-O specific object file parser.
+  Use Mach-O specific object file parser. Commands and other options may behave
+  differently when used with ``-macho``.
 
 .. option:: -mattr=<a1,+a2,-a3,...>
 
   Target specific attributes.
-  
+
 .. option:: -mc-x86-disable-arith-relaxation
 
   Disable relaxation of arithmetic instruction for X86.
@@ -83,26 +91,26 @@
 .. option:: -stats
 
   Enable statistics output from program.
-  
+
 .. option:: -triple=<string>
 
-  Target triple to disassemble for, see -version for available targets.
-  
+  Target triple to disassemble for, see ``-version`` for available targets.
+
 .. option:: -x86-asm-syntax=<style>
 
   When used with the ``-disassemble`` option, choose style of code to emit from
   X86 backend. Supported values are:
 
    .. option:: att
-   
+
     AT&T-style assembly
-   
+
    .. option:: intel
-   
+
     Intel-style assembly
 
-   
-  The default disassembly style is **att**. 
+
+  The default disassembly style is **att**.
 
 BUGS
 ----