diff options
author | Sean Fertile <sfertile@ca.ibm.com> | 2018-11-14 17:56:43 +0000 |
---|---|---|
committer | Sean Fertile <sfertile@ca.ibm.com> | 2018-11-14 17:56:43 +0000 |
commit | 614dc11ca8bc8cb3296dbcc4712d98408d438f45 (patch) | |
tree | ab9540f5eb74aac3486b09cb0f3b42e40081e454 /lldb/packages/Python/lldbsuite/test | |
parent | 36eef925c0f1b92dc82d232c009debd30e08fc7e (diff) | |
download | bcm5719-llvm-614dc11ca8bc8cb3296dbcc4712d98408d438f45.tar.gz bcm5719-llvm-614dc11ca8bc8cb3296dbcc4712d98408d438f45.zip |
[PPC64] Long branch thunks.
On PowerPC64, when a function call offset is too large to encode in a call
instruction the address is stored in a table in the data segment. A thunk is
used to load the branch target address from the table relative to the
TOC-pointer and indirectly branch to the callee. When linking position-dependent
code the addresses are stored directly in the table, for position-independent
code the table is allocated and filled in at load time by the dynamic linker.
For position-independent code the branch targets could have gone in the .got.plt
but using the .branch_lt section for both position dependent and position
independent binaries keeps it consitent and helps keep this PPC64 specific logic
seperated from the target-independent code handling the .got.plt.
Differential Revision: https://reviews.llvm.org/D53408
llvm-svn: 346877
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
0 files changed, 0 insertions, 0 deletions