Add new option --show-raw-insn.
authorDavid Edelsohn <dje.gcc@gmail.com>
Tue, 23 Jan 1996 00:50:24 +0000 (00:50 +0000)
committerDavid Edelsohn <dje.gcc@gmail.com>
Tue, 23 Jan 1996 00:50:24 +0000 (00:50 +0000)
* objdump.c (show_raw_insn): New global.
(usage): Update.
(long_options): Update.
(disassemble_data): Set disasm_info.flags if --show-raw-insn.

* objdump.c (disassemble_data): Set new arch,mach,endian fields in
disasm_info.

binutils/ChangeLog
binutils/binutils.texi
binutils/objdump.1
binutils/objdump.c

index 20522e2..6ee8818 100644 (file)
@@ -1,3 +1,14 @@
+Mon Jan 22 16:46:43 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+       Add new option --show-raw-insn.
+       * objdump.c (show_raw_insn): New global.
+       (usage): Update.
+       (long_options): Update.
+       (disassemble_data): Set disasm_info.flags if --show-raw-insn.
+
+       * objdump.c (disassemble_data): Set new arch,mach,endian fields in
+       disasm_info.
+
 Mon Jan 22 19:29:36 1996  Ian Lance Taylor  <ian@cygnus.com>
 
        * ieee.c: Extensive changes to pass a single info argument around
index 31df7f1..3b857d2 100644 (file)
@@ -972,7 +972,8 @@ objdump [ -a | --archive-headers ]
         [ -s | --full-contents ]  [ --stabs ]
         [ -t | --syms ] [ -T | --dynamic-syms ] [ -x | --all-headers ]
         [ -w | --wide ] [ --start-address=@var{address} ]
-        [ --stop-address=@var{address} ] [ --version ]  [ --help ]
+        [ --stop-address=@var{address} ] [ --show-raw-insn ]
+        [ --version ]  [ --help ]
         @var{objfile}@dots{}
 @end smallexample
 
@@ -1112,6 +1113,10 @@ Display the full contents of any sections requested.
 Display source code intermixed with disassembly, if possible.  Implies
 @samp{-d}.
 
+@item --show-raw-insn
+When disassembling instructions, print the instruction in hex as well as
+in symbolic form.  Not all targets handle this correctly yet.
+
 @item --stabs
 @cindex stab
 @cindex .stab
index 0afdeca..e3c4a25 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 1991 Free Software Foundation
+.\" Copyright (c) 1991, 1996 Free Software Foundation
 .\" See section COPYING for conditions for redistribution
 .TH objdump 1 "5 November 1991" "cygnus support" "GNU Development Tools"
 .de BP
@@ -43,6 +43,7 @@ objdump \- display information from object files.
 .RB "[\|" \-R | \-\-dynamic\-reloc "\|]" 
 .RB "[\|" \-s | \-\-full\-contents "\|]"
 .RB "[\|" \-S | \-\-source "\|]"
+.RB "[\|" \-\-show\-raw\-insn "\|]" 
 .RB "[\|" \-\-stabs "\|]"
 .RB "[\|" \-t | \-\-syms "\|]" 
 .RB "[\|" \-T | \-\-dynamic\-syms "\|]" 
@@ -245,6 +246,11 @@ Display source code intermixed with disassembly, if possible.  Implies
 \fB-d\fP.
 
 .TP
+.B \-\-show-raw-insn
+When disassembling instructions, print the instruction in hex as well as
+in symbolic form.  Not all targets handle this correctly yet.
+
+.TP
 .B \-\-stabs
 Display the contents of the .stab, .stab.index, and .stab.excl
 sections from an ELF file.  This is only useful on systems (such as
index 852588f..3279eb7 100644 (file)
@@ -52,6 +52,7 @@ int dump_ar_hdrs;             /* -a */
 int dump_private_headers;      /* -p */
 int with_line_numbers;         /* -l */
 boolean with_source_code;      /* -S */
+int show_raw_insn;             /* --show-raw-insn */
 int dump_stab_section_info;    /* --stabs */
 boolean disassemble;           /* -d */
 boolean disassemble_all;       /* -D */
@@ -140,7 +141,8 @@ Usage: %s [-ahifdDprRtTxsSlw] [-b bfdname] [-m machine] [-j section-name]\n\
        [--architecture=machine] [--reloc] [--full-contents] [--stabs]\n\
        [--syms] [--all-headers] [--dynamic-syms] [--dynamic-reloc]\n\
        [--wide] [--version] [--help] [--private-headers]\n\
-       [--start-address=addr] [--stop-address=addr] objfile...\n\
+       [--start-address=addr] [--stop-address=addr]\n\
+       [--show-raw-insn] objfile...\n\
 at least one option besides -l (--line-numbers) must be given\n");
   list_supported_targets (program_name, stream);
   exit (status);
@@ -171,6 +173,7 @@ static struct option long_options[]=
   {"reloc", no_argument, NULL, 'r'},
   {"section", required_argument, NULL, 'j'},
   {"section-headers", no_argument, NULL, 'h'},
+  {"show-raw-insn", no_argument, &show_raw_insn, 1},
   {"source", no_argument, NULL, 'S'},
   {"stabs", no_argument, &dump_stab_section_info, 1},
   {"start-address", required_argument, NULL, OPTION_START_ADDRESS},
@@ -831,6 +834,8 @@ disassemble_data (abfd)
   disasm_info.application_data = (PTR) &aux;
   aux.abfd = abfd;
   disasm_info.print_address_func = objdump_print_address;
+  if (show_raw_insn)
+    disasm_info.flags |= DISASM_RAW_INSN_FLAG;
 
   if (machine != (char *) NULL)
     {
@@ -854,6 +859,13 @@ disassemble_data (abfd)
       exit (1);
     }
 
+  disasm_info.arch = bfd_get_arch (abfd);
+  disasm_info.mach = bfd_get_mach (abfd);
+  if (bfd_big_endian (abfd))
+    disasm_info.endian = BFD_ENDIAN_BIG;
+  else
+    disasm_info.endian = BFD_ENDIAN_LITTLE;
+
   for (section = abfd->sections;
        section != (asection *) NULL;
        section = section->next)