diff --git a/contrib/libcxxrt/exception.cc b/contrib/libcxxrt/exception.cc index f28082ab7e80..6c5196876b10 100644 --- a/contrib/libcxxrt/exception.cc +++ b/contrib/libcxxrt/exception.cc @@ -1577,8 +1577,10 @@ asm ( ".type __cxa_end_cleanup, \"function\" \n" "__cxa_end_cleanup: \n" " push {r1, r2, r3, r4} \n" +" mov r4, lr \n" " bl __cxa_get_cleanup \n" -" push {r1, r2, r3, r4} \n" +" mov lr, r4 \n" +" pop {r1, r2, r3, r4} \n" " b _Unwind_Resume \n" " bl abort \n" ".popsection \n"