Add Thunk support framework for ARM and Mips
Audit RequiredrL274836

Description

Add Thunk support framework for ARM and Mips

Generalise the Mips LA25 Thunk code and implement ARM and Thumb
interworking Thunks.

- Introduce a new module Thunks.cpp to store the Target Specific Thunk
  implementations.
- DefinedRegular and Shared have a ThunkData field to record Thunk.
- A Target can have more than one type of Thunk.
- Support PC-relative calls to Thunks.
- Support Thunks to PLT entries.
- Existing Mips LA25 Thunk code integrated.
- Support for ARMv7A interworking Thunks.

Limitations:
- Only one Thunk per SymbolBody, this is sufficient for all currently
  implemented Thunks.
- ARM thunks assume presence of V6T2 MOVT and MOVW instructions.

Differential revision: http://reviews.llvm.org/D21891

Details

Auditors
Bigcheese
Committed
psmithJul 8 2016, 4:13 AM
Parents
rL274835: [ASTMatchers] Add missing forEachArgumentWithParam() to code sample
Branches
Unknown
Tags
Unknown