aboutsummaryrefslogtreecommitdiff
path: root/lib/libunwind/src/Unwind-EHABI.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-08-04 18:09:10 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-08-04 18:09:10 -0700
commit2f635c3ce9be74f9e9ffb71324f7ba51bd2987f4 (patch)
treef04b0f4fb7a0e5ce0e36829bfd9aaa032447ac2a /lib/libunwind/src/Unwind-EHABI.cpp
parentc0d9578a84c95f66f34729f6c8842a98a995f223 (diff)
downloadzig-2f635c3ce9be74f9e9ffb71324f7ba51bd2987f4.tar.gz
zig-2f635c3ce9be74f9e9ffb71324f7ba51bd2987f4.zip
update libunwind to LLVM 15
release/15.x commit 134fd359a5d884f16662a9edd22ab24feeb1498c
Diffstat (limited to 'lib/libunwind/src/Unwind-EHABI.cpp')
-rw-r--r--lib/libunwind/src/Unwind-EHABI.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/libunwind/src/Unwind-EHABI.cpp b/lib/libunwind/src/Unwind-EHABI.cpp
index 257db724c2..f203887567 100644
--- a/lib/libunwind/src/Unwind-EHABI.cpp
+++ b/lib/libunwind/src/Unwind-EHABI.cpp
@@ -432,10 +432,11 @@ _Unwind_VRS_Interpret(_Unwind_Context *context, const uint32_t *data,
uint32_t sp;
uint32_t pac;
_Unwind_VRS_Get(context, _UVRSC_CORE, UNW_ARM_SP, _UVRSD_UINT32, &sp);
- _Unwind_VRS_Get(context, _UVRSC_PSEUDO, UNW_ARM_RA_AUTH_CODE,
- _UVRSD_UINT32, &pac);
+ _Unwind_VRS_Get(context, _UVRSC_PSEUDO, 0, _UVRSD_UINT32, &pac);
__asm__ __volatile__("autg %0, %1, %2" : : "r"(pac), "r"(lr), "r"(sp) :);
}
+#else
+ (void)hasReturnAddrAuthCode;
#endif
_Unwind_VRS_Set(context, _UVRSC_CORE, UNW_ARM_IP, _UVRSD_UINT32, &lr);
}
@@ -1136,8 +1137,7 @@ _Unwind_VRS_Pop(_Unwind_Context *context, _Unwind_VRS_RegClass regclass,
}
uint32_t pac = *sp++;
_Unwind_VRS_Set(context, _UVRSC_CORE, UNW_ARM_SP, _UVRSD_UINT32, &sp);
- return _Unwind_VRS_Set(context, _UVRSC_CORE, UNW_ARM_RA_AUTH_CODE,
- _UVRSD_UINT32, &pac);
+ return _Unwind_VRS_Set(context, _UVRSC_PSEUDO, 0, _UVRSD_UINT32, &pac);
}
}
_LIBUNWIND_ABORT("unsupported register class");
@@ -1193,6 +1193,7 @@ _Unwind_DeleteException(_Unwind_Exception *exception_object) {
extern "C" _LIBUNWIND_EXPORT _Unwind_Reason_Code
__gnu_unwind_frame(_Unwind_Exception *exception_object,
struct _Unwind_Context *context) {
+ (void)exception_object;
unw_cursor_t *cursor = (unw_cursor_t *)context;
switch (__unw_step(cursor)) {
case UNW_STEP_SUCCESS: