]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
ARM: Allow building __sigsetjmp as Thumb.
authorWill Newton <will.newton@linaro.org>
Wed, 25 Sep 2013 09:17:28 +0000 (10:17 +0100)
committerWill Newton <will.newton@linaro.org>
Fri, 4 Oct 2013 09:54:58 +0000 (10:54 +0100)
Convert __sigsetjmp code to allow building as Thumb.

ports/ChangeLog.arm:

2013-10-04  Will Newton  <will.newton@linaro.org>

* sysdeps/arm/setjmp.S (NO_THUMB): Remove define.
(__sigsetjmp): Use Thumb supported instructions.

ports/ChangeLog.arm
ports/sysdeps/arm/setjmp.S

index 3f47d5e3d45e1e43fb12a7aa8ef678bbeebf691b..6707d2ef3ddb45e80cfc2e48025dd1889457eacc 100644 (file)
@@ -5,6 +5,9 @@
        * sysdeps/unix/sysv/linux/arm/____longjmp_chk.S (NO_THUMB):
        Remove define.
 
+       * sysdeps/arm/setjmp.S (NO_THUMB): Remove define.
+       (__sigsetjmp): Use Thumb supported instructions.
+
 2013-10-03  Will Newton  <will.newton@linaro.org>
 
        * sysdeps/arm/__longjmp.S (__longjmp): Demangle fp, sp
index b38b919af065cbae2d176de9100439d0373bacf0..fedd9943133390f936a4f5193e25ab5f63f60760 100644 (file)
@@ -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