Reland "[libcxxabi][ARM] Make CXX_end_cleanup compatible with Armv6-M"

On Armv6-M the branch may not able to reach the _Unwind_Resume function because it's relocation(R_ARM_THM_JUMP11) is in -2048, 2047 range only.

Reviewed By: chill, stuij, lenary

Differential Revision: https://reviews.llvm.org/D113181

GitOrigin-RevId: c5c4bac6c03da467a048ed922a14b76c7e053637
diff --git a/src/cxa_exception.cpp b/src/cxa_exception.cpp
index 7044cb9..9dd5531 100644
--- a/src/cxa_exception.cpp
+++ b/src/cxa_exception.cpp
@@ -382,7 +382,12 @@
     "	bl	__cxa_end_cleanup_impl\n"
     "	pop	{r1, r2, r3, r4}\n"
     "	mov	lr, r4\n"
-    "	b	_Unwind_Resume\n"
+#if defined(LIBCXXABI_BAREMETAL)
+    "	ldr	r4,	=_Unwind_Resume\n"
+    "	bx	r4\n"
+#else
+    "   b _Unwind_Resume\n"
+#endif
     "	.popsection");
 #endif // defined(_LIBCXXABI_ARM_EHABI)