Found with objdump from release Arm GNU Toolchain 10.1.morello-alp2, is ok using llvm-objdump. How can I report an issue with this toolchain release?
On pure-cap, when ADRP instruction PCC relative address is negative offset, i.e resolved address is < PCC, then resolved address is not displayed correctly using objdump or even gdb dissassembly of the linked out file.
Here is an example, how gdb displays the disassembly of this instruction @ 0x2118d0:
2118d0: f0ffffe0 adrp c0, 100210000
There is a spurious high bit set, if you decode the immediate hi:lo and subtract from PCC page then correct value is 0x210000.
llvm-objdump gets it correct:
2118d0: e0 ff ff f0 adrp c0, 0x210000
Thanks for the bug report, this has now been fixed in the upstream sources and will be fixed in the next binary release.