HomePhabricator

[mach-o] Implement interworking between thumb and arm code

Description

[mach-o] Implement interworking between thumb and arm code

All iOS arm processor support switching between arm and thumb mode at call sites
by using the BLX instruction (instead of BL). But the compiler does not know
the implementation mode for extern functions, so the linker must update BL/BLX
instructions to match what is linked is actually linked together. In addition,
pointers to functions (such as vtables) must have the low bit set if the target
of the pointer is a thumb mode function.

Details

Auditors
Bigcheese
Committed
kledzikJul 28 2014, 4:06 PM
Parents
rL214139: [Debug Info] unique MDNodes in the enum types of each compile unit.
Branches
Unknown
Tags
Unknown

Event Timeline