summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/microblaze/setjmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/microblaze/setjmp.S')
-rw-r--r--libc/sysdeps/linux/microblaze/setjmp.S43
1 files changed, 15 insertions, 28 deletions
diff --git a/libc/sysdeps/linux/microblaze/setjmp.S b/libc/sysdeps/linux/microblaze/setjmp.S
index 3c1d8a1dd..b40850cae 100644
--- a/libc/sysdeps/linux/microblaze/setjmp.S
+++ b/libc/sysdeps/linux/microblaze/setjmp.S
@@ -28,27 +28,21 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#include <libc-symbols.h>
+#include <sysdep.h>
- .text
- .globl C_SYMBOL_NAME(setjmp)
- .align 4
-C_SYMBOL_NAME(setjmp):
-#ifdef __PIC__
- brid 1f
-#else
- braid C_SYMBOL_NAME(__sigsetjmp)
-#endif
- addi r6, r0, 1 /* Save the signal mask. */
+ENTRY(_setjmp)
+ addik r6, r0, 0
+END(_setjmp)
+libc_hidden_def(_setjmp)
- .globl C_SYMBOL_NAME(_setjmp)
-C_SYMBOL_NAME(_setjmp):
- and r6, r0, r0 /* Don't save the signal mask. */
+ENTRY(setjmp)
+ brid 1f
+ addik r6, r0, 1
+END(setjmp)
+libc_hidden_def(setjmp)
- .globl C_SYMBOL_NAME(__sigsetjmp)
-C_SYMBOL_NAME(__sigsetjmp):
+ENTRY(__sigsetjmp)
1:
- /* Save registers relative to r5 (arg0)*/
swi r1, r5, 0 /* stack pointer */
swi r15, r5, 4 /* link register */
swi r2, r5, 8 /* SDA and SDA2 ptrs */
@@ -68,14 +62,7 @@ C_SYMBOL_NAME(__sigsetjmp):
swi r30, r5, 64
swi r31, r5, 68
- /* Make a tail call to __sigjmp_save; it takes the same args. */
-#ifdef __PIC__
- mfs r12,rpc
- addik r12,r12,_GLOBAL_OFFSET_TABLE_+8
- lwi r12,r12,__sigjmp_save@GOT
- brad r12
- nop
-#else
- braid C_SYMBOL_NAME(__sigjmp_save)
- nop
-#endif
+ bri __sigjmp_save
+
+END(__sigsetjmp)
+libc_hidden_def(__sigsetjmp)