diff --git a/libcxxabi/src/Unwind/UnwindRegistersRestore.S b/libcxxabi/src/Unwind/UnwindRegistersRestore.S index 15e2072fda77..9f077051b991 100644 --- a/libcxxabi/src/Unwind/UnwindRegistersRestore.S +++ b/libcxxabi/src/Unwind/UnwindRegistersRestore.S @@ -266,6 +266,7 @@ Lnovec: ; On entry: ; thread_state pointer is in x0 ; + .align 2 DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind15Registers_arm646jumptoEv) ; skip restore of x0,x1 for now ldp x2, x3, [x0, #0x010] @@ -315,6 +316,7 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind15Registers_arm646jumptoEv) @ On entry: @ thread_state pointer is in r0 @ + .align 2 DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm6jumptoEv) @ Use lr as base so that r0 can be restored. mov lr, r0 diff --git a/libcxxabi/src/Unwind/UnwindRegistersSave.S b/libcxxabi/src/Unwind/UnwindRegistersSave.S index 6f19f6c663dc..681b44c7442c 100644 --- a/libcxxabi/src/Unwind/UnwindRegistersSave.S +++ b/libcxxabi/src/Unwind/UnwindRegistersSave.S @@ -238,6 +238,7 @@ DEFINE_LIBUNWIND_FUNCTION(unw_getcontext) ; On entry: ; thread_state pointer is in x0 ; + .align 2 DEFINE_LIBUNWIND_FUNCTION(unw_getcontext) stp x0, x1, [x0, #0x000] stp x2, x3, [x0, #0x010] @@ -287,6 +288,7 @@ DEFINE_LIBUNWIND_FUNCTION(unw_getcontext) @ On entry: @ thread_state pointer is in r0 @ + .align 2 DEFINE_LIBUNWIND_FUNCTION(unw_getcontext) @ 32bit thumb-2 restrictions for stm: @ . the sp (r13) cannot be in the list