summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorSean Fertile <sfertile@ca.ibm.com>2018-11-14 17:56:43 +0000
committerSean Fertile <sfertile@ca.ibm.com>2018-11-14 17:56:43 +0000
commit614dc11ca8bc8cb3296dbcc4712d98408d438f45 (patch)
treeab9540f5eb74aac3486b09cb0f3b42e40081e454 /lldb/packages/Python/lldbsuite/test
parent36eef925c0f1b92dc82d232c009debd30e08fc7e (diff)
downloadbcm5719-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
OpenPOWER on IntegriCloud