diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2015-02-12 04:25:03 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2015-02-12 04:25:03 +0000 |
commit | e281edd1f41a30899148afba2adf6f89ff0f807e (patch) | |
tree | 2cb515080b6070539ea993068ca5815e98c9e77f /include | |
parent | 16e33fad1a800924365cca09870e7250ac20000c (diff) |
unwind: move exported APIs out of header
Ideally, we would do something like inline __declspec(dllexport) to ensure that
the symbol was inlined within libunwind as well as emitted into the final DSO.
This simply moves the definition out of the header to ensure that the *public*
interfaces are defined and exported into the final DSO.
This change also has "gratuitous" code movement so that the EHABI and generic
implementations are co-located making it easier to find them.
The movement from the header has one minor change introduced into the code:
additional tracing to mirror the behaviour of the non-EHABI interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@228903 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/unwind.h | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/include/unwind.h b/include/unwind.h index 3d889cf..86001bb 100644 --- a/include/unwind.h +++ b/include/unwind.h @@ -202,37 +202,13 @@ extern _Unwind_VRS_Result _Unwind_VRS_Pop(_Unwind_Context *context, _Unwind_VRS_RegClass regclass, uint32_t discriminator, _Unwind_VRS_DataRepresentation representation); +#endif -static inline uintptr_t _Unwind_GetGR(struct _Unwind_Context* context, - int index) { - uintptr_t value = 0; - _Unwind_VRS_Get(context, _UVRSC_CORE, (uint32_t)index, _UVRSD_UINT32, &value); - return value; -} - -static inline void _Unwind_SetGR(struct _Unwind_Context* context, int index, - uintptr_t new_value) { - _Unwind_VRS_Set(context, _UVRSC_CORE, (uint32_t)index, - _UVRSD_UINT32, &new_value); -} - -static inline uintptr_t _Unwind_GetIP(struct _Unwind_Context* context) { - // remove the thumb-bit before returning - return (_Unwind_GetGR(context, 15) & (~(uintptr_t)0x1)); -} - -static inline void _Unwind_SetIP(struct _Unwind_Context* context, - uintptr_t new_value) { - uintptr_t thumb_bit = _Unwind_GetGR(context, 15) & ((uintptr_t)0x1); - _Unwind_SetGR(context, 15, new_value | thumb_bit); -} -#else extern uintptr_t _Unwind_GetGR(struct _Unwind_Context *context, int index); extern void _Unwind_SetGR(struct _Unwind_Context *context, int index, uintptr_t new_value); extern uintptr_t _Unwind_GetIP(struct _Unwind_Context *context); extern void _Unwind_SetIP(struct _Unwind_Context *, uintptr_t new_value); -#endif extern uintptr_t _Unwind_GetRegionStart(struct _Unwind_Context *context); extern uintptr_t |