summaryrefslogtreecommitdiff
path: root/sysdeps/arm/setjmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/arm/setjmp.S')
-rw-r--r--sysdeps/arm/setjmp.S38
1 files changed, 13 insertions, 25 deletions
diff --git a/sysdeps/arm/setjmp.S b/sysdeps/arm/setjmp.S
index 79d3dc37d2..dc8081abe6 100644
--- a/sysdeps/arm/setjmp.S
+++ b/sysdeps/arm/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for ARM.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,20 +36,15 @@ ENTRY (__sigsetjmp)
#ifdef PTR_MANGLE
mov a4, sp
PTR_MANGLE2 (a4, a4, a3)
- sfi_breg ip, \
- str a4, [\B], #4
+ str a4, [ip], #4
PTR_MANGLE2 (a4, lr, a3)
- sfi_breg ip, \
- str a4, [\B], #4
+ str a4, [ip], #4
#else
- sfi_breg ip, \
- str sp, [\B], #4
- sfi_breg ip, \
- str lr, [\B], #4
+ str sp, [ip], #4
+ str lr, [ip], #4
#endif
/* Save registers */
- sfi_breg ip, \
- stmia \B!, JMP_BUF_REGLIST
+ stmia ip!, JMP_BUF_REGLIST
#if !defined ARM_ASSUME_NO_IWMMXT || defined __SOFTFP__
# define NEED_HWCAP 1
@@ -80,8 +75,7 @@ ENTRY (__sigsetjmp)
Don't use VFP instructions directly because this code
is used in non-VFP multilibs. */
/* Following instruction is vstmia ip!, {d8-d15}. */
- sfi_breg ip, \
- stc p11, cr8, [\B], #64
+ stc p11, cr8, [ip], #64
.Lno_vfp:
#ifndef ARM_ASSUME_NO_IWMMXT
@@ -90,18 +84,12 @@ ENTRY (__sigsetjmp)
/* Save the call-preserved iWMMXt registers. */
/* Following instructions are wstrd wr10, [ip], #8 (etc.) */
- sfi_breg r12, \
- stcl p1, cr10, [\B], #8
- sfi_breg r12, \
- stcl p1, cr11, [\B], #8
- sfi_breg r12, \
- stcl p1, cr12, [\B], #8
- sfi_breg r12, \
- stcl p1, cr13, [\B], #8
- sfi_breg r12, \
- stcl p1, cr14, [\B], #8
- sfi_breg r12, \
- stcl p1, cr15, [\B], #8
+ stcl p1, cr10, [r12], #8
+ stcl p1, cr11, [r12], #8
+ stcl p1, cr12, [r12], #8
+ stcl p1, cr13, [r12], #8
+ stcl p1, cr14, [r12], #8
+ stcl p1, cr15, [r12], #8
.Lno_iwmmxt:
#endif