Closed
Description
llvm-objdump seems to treat negative branch offset as a large positive one, causing it to disassemble backwards branch in an odd way:
reproducer:
nop
ba reproducer
nop
Assemble with e.g. clang -target sparc -c reproducer.s
, then read it back:
$ bin/llvm-objdump -d reproducer.o
reproducer.o: file format elf32-sparc
Disassembly of section .text:
00000000 <reproducer>:
0: 01 00 00 00 nop
4: 10 bf ff ff ba 4194303
8: 01 00 00 00 nop