[llvm-commits] Fix bug 12769 MCAssembler crashes with -mthumb -mcpu=cortex-a9

Tim Northover t.p.northover at gmail.com
Wed May 9 11:55:18 PDT 2012


Hi Weiming,

Apologies if this gets through twice. I tried earlier but the list
seems to be eating e-mails from that address for some reason.

> This patch fixes the issue. And it also passes the test suite. For the unit
> tests, it doesn’t create new fails. (details are in tests.tar)

In this case, I believe we actually need an R_ARM_THM_JUMP24 which
will put the immediate into the correct bits for a Thumb unconditional
branch. If you look at the ARM ELF ABI and the architecture reference
manual you'll see that if a linker encountered R_ARM_THM_CALL it would
put the immediate into bits 0-11 and 16-26, stamping all over your
lovingly crafted B.W instruction.

We could also do with some tests for this specific issue: a examples
for a similar case can be found in test/MC/ARM/elf-reloc-condcall.s.

Cheers.

Tim.




More information about the llvm-commits mailing list