summaryrefslogtreecommitdiffstats
path: root/libunwind/include
diff options
context:
space:
mode:
authorLuke Cheeseman <luke.cheeseman@arm.com>2018-12-14 11:30:12 +0000
committerLuke Cheeseman <luke.cheeseman@arm.com>2018-12-14 11:30:12 +0000
commite1a819e82de87bfd217d73ca74a39d10b46d0a71 (patch)
treed2d100a78ce79f0bffbe3fd90f02e544c6e754f0 /libunwind/include
parent96408bb04a03b4ac961831c270fd9c996358ee03 (diff)
downloadbcm5719-llvm-e1a819e82de87bfd217d73ca74a39d10b46d0a71.tar.gz
bcm5719-llvm-e1a819e82de87bfd217d73ca74a39d10b46d0a71.zip
[AArch64][libunwind] Unwinding support for return address signing
- Follow up to revision r342895 - gcc would not build libunwind with the earlier patch as the autia1716 instruction wasn't allowed to be assembled for pre armv8.3a targets - The autia1716 instruction lives in the hint space encodings so is a valid instruction for all armv8a targets - To work around this I have swapped out the autia1716 instruction for the hint instruction Differential Revision: https://reviews.llvm.org/D55700 llvm-svn: 349140
Diffstat (limited to 'libunwind/include')
-rw-r--r--libunwind/include/libunwind.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/libunwind/include/libunwind.h b/libunwind/include/libunwind.h
index 97d2b82290c..d824c131835 100644
--- a/libunwind/include/libunwind.h
+++ b/libunwind/include/libunwind.h
@@ -57,6 +57,9 @@ enum {
UNW_EINVAL = -6547, /* unsupported operation or bad value */
UNW_EBADVERSION = -6548, /* unwind info has unsupported version */
UNW_ENOINFO = -6549 /* no unwind info found */
+#if defined(_LIBUNWIND_TARGET_AARCH64) && !defined(_LIBUNWIND_IS_NATIVE_ONLY)
+ , UNW_ECROSSRASIGNING = -6550 /* cross unwind with return address signing */
+#endif
};
struct unw_context_t {
@@ -547,6 +550,8 @@ enum {
UNW_ARM64_X31 = 31,
UNW_ARM64_SP = 31,
// reserved block
+ UNW_ARM64_RA_SIGN_STATE = 34,
+ // reserved block
UNW_ARM64_D0 = 64,
UNW_ARM64_D1 = 65,
UNW_ARM64_D2 = 66,
OpenPOWER on IntegriCloud