This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Create relocations for wide Thumb2 unconditional branches.
AbandonedPublic

Authored by fhahn on Jun 2 2017, 9:19 AM.

Details

Summary

The ARM ELF ABI requires the linker to do interworking for wide branches
from Thumb code to ARM code. The range for Thumb2 unconditional branches
is the same as for BL.

That was pointed out by @peter.smith in the comments for D33436.

Diff Detail

Event Timeline

fhahn created this revision.Jun 2 2017, 9:19 AM
fhahn added a comment.Jun 2 2017, 9:20 AM

I plan to add support for Thumb2 conditional branches in a separate patch, as they have a different range. I'll also investigate why unnecessary relocations are created for backward branches.

peter.smith accepted this revision.Jun 5 2017, 3:00 AM

I'm happy with this change using the same argument as D33436. Will be worth waiting to see if anyone in a later timezone objects before committing.

This revision is now accepted and ready to land.Jun 5 2017, 3:00 AM
fhahn added a comment.Jun 5 2017, 9:15 AM

I've just created D33898 , which creates relocations for all unconditional branches to function symbols with different execution mode.

fhahn abandoned this revision.Jul 24 2017, 5:11 AM

This was fixed in another patch