diff options
author | Ian Lance Taylor <ian@airs.com> | 1997-02-12 17:18:38 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1997-02-12 17:18:38 +0000 |
commit | 0988ea9f3e302ecfd4e4bd1c9da5ba6d698c1d21 (patch) | |
tree | d4fbb60184fea6ec0d00d2aee25f1aac1b323610 | |
parent | 65c89fc376e4f9bfd2d494db8a23572bfb6265cb (diff) | |
download | gdb-0988ea9f3e302ecfd4e4bd1c9da5ba6d698c1d21.zip gdb-0988ea9f3e302ecfd4e4bd1c9da5ba6d698c1d21.tar.gz gdb-0988ea9f3e302ecfd4e4bd1c9da5ba6d698c1d21.tar.bz2 |
Wed Feb 12 12:16:47 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* objdump.c (disassemble_bytes): Make output of raw instructions
work better for non-standard values of bytes_per_chunk and
bytes_per_line.
I also fixed the spacing in the last patch.
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/objdump.c | 36 |
2 files changed, 33 insertions, 9 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index d372b44..8a9ecee 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +Wed Feb 12 12:16:47 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * objdump.c (disassemble_bytes): Make output of raw instructions + work better for non-standard values of bytes_per_chunk and + bytes_per_line. + Thu Feb 6 14:14:59 1997 Martin M. Hunt <hunt@pizza.cygnus.com> * objdump.c (disassemble_bytes): Added code to allow some control diff --git a/binutils/objdump.c b/binutils/objdump.c index 77a8d71..5eca0fc 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -1186,20 +1186,26 @@ disassemble_bytes (info, disassemble_fn, insns, data, start, stop, relppp, int k; if (bpc > 1 && info->display_endian == BFD_ENDIAN_LITTLE) { - for (k=bpc-1; k >= 0; k--) - printf ("%02x", (unsigned) data[j+k]); + for (k = bpc - 1; k >= 0; k--) + printf ("%02x", (unsigned) data[j + k]); putchar (' '); } else { - for (k=0; k < bpc; k++) - printf ("%02x", (unsigned) data[j+k]); + for (k = 0; k < bpc; k++) + printf ("%02x", (unsigned) data[j + k]); putchar (' '); } } - for (; pb < bytes_per_line; ++pb) - printf (" "); + for (; pb < bytes_per_line; pb += bpc) + { + int k; + + for (k = 0; k < bpc; k++) + printf (" "); + putchar (' '); + } /* Separate raw data from instruction by extra space. */ if (insns) @@ -1230,10 +1236,22 @@ disassemble_bytes (info, disassemble_fn, insns, data, start, stop, relppp, pb += bytes_per_line; if (pb > bytes) pb = bytes; - for (; j < i + pb; ++j) + for (; j < i + pb; j += bpc) { - printf ("%02x", (unsigned) data[j]); - putchar (' '); + int k; + + if (bpc > 1 && info->display_endian == BFD_ENDIAN_LITTLE) + { + for (k = bpc - 1; k >= 0; k--) + printf ("%02x", (unsigned) data[j + k]); + putchar (' '); + } + else + { + for (k = 0; k < bpc; k++) + printf ("%02x", (unsigned) data[j + k]); + putchar (' '); + } } } } |