[libcxx-commits] [PATCH] D101298: [libc++abi][AIX] Enable calculating addresses with DW_EH_PE_datarel

Xing Xue via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Apr 26 07:57:49 PDT 2021


xingxue created this revision.
xingxue added reviewers: MaskRay, phosek, mstorsjo, sfertile, jasonliu, hubert.reinterpretcast, cebowleratibm, libc++abi.
xingxue added a project: LLVM.
xingxue requested review of this revision.
Herald added a project: libc++abi.
Herald added a subscriber: libcxx-commits.
Herald added 1 blocking reviewer(s): libc++abi.

This patch enables calculating relative addresses with the `DW_EH_PE_datarel` encoding using a base.  For functions invoked by scan_eh_tab() to scan the range table, a new parameter `base` is added to pass the base. For platforms where base is not used, `base` defaults to 0. After setting registers for jumping to the user code in `gxx_personality_v0()`, the `base` is cached in `exception_header` member `catchTemp` for use in `__cxa_call_unexpected` if `ttypeIndex` is less than 0 (exception spec).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D101298

Files:
  libcxxabi/src/cxa_personality.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101298.340506.patch
Type: text/x-patch
Size: 27986 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210426/a0c2c35d/attachment-0001.bin>


More information about the libcxx-commits mailing list