objdump.c sign_adjust patch
Alan Modra
amodra@bigpond.net.au
Tue Feb 17 23:42:00 GMT 2009
More information about the Binutils mailing list
Tue Feb 17 23:42:00 GMT 2009
- Previous message (by thread): objdump.c sign_adjust patch
- Next message (by thread): [Build failure] tm struct tm_gmtoff field build error
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Feb 17, 2009 at 12:11:03PM -0800, Fu, Chao-Ying wrote:
> When sign_adjust is 0x80000000 and section->vma is 0xffffffff8002000,
> addr becomes 0xfffffffe80020000 after "(addr ^ sign_adjust) - sign_adjust".
Try this.
* objdump.c (disassemble_section): Mask address before sign extending.
Index: binutils/objdump.c
===================================================================
RCS file: /cvs/src/src/binutils/objdump.c,v
retrieving revision 1.154
diff -u -p -r1.154 objdump.c
--- binutils/objdump.c 9 Feb 2009 09:14:15 -0000 1.154
+++ binutils/objdump.c 17 Feb 2009 23:41:26 -0000
@@ -1898,7 +1900,7 @@ disassemble_section (bfd *abfd, asection
bfd_boolean insns;
addr = section->vma + addr_offset;
- addr = (addr ^ sign_adjust) - sign_adjust;
+ addr = ((addr & ((sign_adjust << 1) - 1)) ^ sign_adjust) - sign_adjust;
if (sym != NULL && bfd_asymbol_value (sym) <= addr)
{
--
Alan Modra
Australia Development Lab, IBM
- Previous message (by thread): objdump.c sign_adjust patch
- Next message (by thread): [Build failure] tm struct tm_gmtoff field build error
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list