Message ID | 524D4926.2050405@linaro.org |
---|---|
State | Accepted |
Headers | show |
On Thu, 3 Oct 2013, Will Newton wrote: > Convert __sigsetjmp code to allow building as Thumb. > > ports/ChangeLog.arm: > > 2013-09-25 Will Newton <will.newton@linaro.org> > > * sysdeps/arm/setjmp.S (NO_THUMB): Remove define. > (__sigsetjmp): Use Thumb supported instructions. OK, if you've tested with the glibc testsuite for both ARM-mode and Thumb-mode builds.
diff --git a/ports/sysdeps/arm/setjmp.S b/ports/sysdeps/arm/setjmp.S index b38b919..fedd994 100644 --- a/ports/sysdeps/arm/setjmp.S +++ b/ports/sysdeps/arm/setjmp.S @@ -16,8 +16,6 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ -/* ??? Needs more rearrangement for the STM to handle thumb mode. */ -#define NO_THUMB #include <sysdep.h> #include <bits/setjmp.h> #include <rtld-global-offsets.h> @@ -35,7 +33,8 @@ ENTRY (__sigsetjmp) sfi_breg ip, \ stmia \B!, JMP_BUF_REGLIST #ifdef PTR_MANGLE - PTR_MANGLE2 (a4, sp, a3) + mov a4, sp + PTR_MANGLE2 (a4, a4, a3) str a4, [ip], #4 PTR_MANGLE2 (a4, lr, a3) str a4, [ip], #4