summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/thread/TestThreadAPI.py
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-12-02 14:20:42 -0800
committerFangrui Song <maskray@google.com>2019-12-05 10:17:45 -0800
commitc8f0d3e130d336f49c204b9ee317bf99be192a82 (patch)
tree6ee037bf5d1747dc809367dbf9b4fa27f3240bbd /lldb/packages/Python/lldbsuite/test/python_api/thread/TestThreadAPI.py
parente503fee904d8c17c089d27ab928bc72eeeece649 (diff)
downloadbcm5719-llvm-c8f0d3e130d336f49c204b9ee317bf99be192a82.tar.gz
bcm5719-llvm-c8f0d3e130d336f49c204b9ee317bf99be192a82.zip
[ELF][PPC64] Support long branch thunks with addends
Fixes PPC64 part of PR40438 // clang -target ppc64le -c a.cc // .text.unlikely may be placed in a separate output section (via -z keep-text-section-prefix) // The distance between bar in .text.unlikely and foo in .text may be larger than 32MiB. static void foo() {} __attribute__((section(".text.unlikely"))) static int bar() { foo(); return 0; } __attribute__((used)) static int dummy = bar(); This patch makes such thunks with addends work for PPC64. AArch64: .text -> `__AArch64ADRPThunk_ (adrp x16, ...; add x16, x16, ...; br x16)` -> target PPC64: .text -> `__long_branch_ (addis 12, 2, ...; ld 12, ...(12); mtctr 12; bctr)` -> target AArch64 can leverage ADRP to jump to the target directly, but PPC64 needs to load an address from .branch_lt . Before Power ISA v3.0, the PC-relative ADDPCIS was not available. .branch_lt was invented to work around the limitation. Symbol::ppc64BranchltIndex is replaced by PPC64LongBranchTargetSection::entry_index which take addends into consideration. The tests are rewritten: ppc64-long-branch.s tests -no-pie and ppc64-long-branch-pi.s tests -pie and -shared. Reviewed By: sfertile Differential Revision: https://reviews.llvm.org/D70937
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/thread/TestThreadAPI.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud