[libc++abi][AIX] Enable calculating addresses with DW_EH_PE_datarel
authorXing Xue <xingxue@outlook.com>
Wed, 23 Jun 2021 21:54:10 +0000 (17:54 -0400)
committerXing Xue <xingxue@outlook.com>
Wed, 23 Jun 2021 21:54:10 +0000 (17:54 -0400)
commitafd3607c8f369a4f1989387cb1eed35976968c89
treee1cc36f3d66445da3b3475ed67e118a92e696525
parentf36703ada3dc18388ef5cdcbb8f39f74c27ad8e9
[libc++abi][AIX] Enable calculating addresses with DW_EH_PE_datarel

Summary:
This patch enables calculating relative addresses with the DW_EH_PE_datarel encoding using a 'base' for AIX. After setting registers for jumping to the user code in gxx_personality_v0(), 'base' is cached in exception_header member catchTemp for use in __cxa_call_unexpected if ttypeIndex is less than 0 (exception spec).

Reviewed by: MaskRay, sfertile, compnerd, libc++abi

Differential Revision: https://reviews.llvm.org/D101298
libcxxabi/src/cxa_personality.cpp