Disassembly of some thumb branches results in the wrong symbol being printed:
80000024: f000 e91e blx 80000264 <__aeabi_idiv0+0xfffff53c>
The problem is that the 32-bit address is sign extended when passed to print_address_func.
This might occur in other code paths as well.
Created attachment 5717 [details]
change to unsigned to prevent sign extension
Module name: src
Changes by: firstname.lastname@example.org 2011-06-03 10:04:03
opcodes : ChangeLog arm-dis.c
* arm-dis.c (print_insn_coprocessor): Use bfd_vma type for
computing address offsets.
Thanks for reporting this problem and suggesting a fix. The correct solution however is to use the bfd_vma type when computing address offsets, as this will prevent any extension, signed or otherwise. I have checked in a patch to do this.