add __sigsetjmp ABI-compat alias for sigsetjmp

This commit is contained in:
Rich Felker 2014-04-02 19:32:57 -04:00
commit b9b2db2f37
9 changed files with 28 additions and 1 deletions

View file

@ -1,6 +1,9 @@
.global sigsetjmp .global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,%function .type sigsetjmp,%function
.type __sigsetjmp,%function
sigsetjmp: sigsetjmp:
__sigsetjmp:
str a2,[a1,#256] str a2,[a1,#256]
tst a2,a2 tst a2,a2
beq setjmp beq setjmp

View file

@ -1,6 +1,9 @@
.global sigsetjmp .global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function .type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp: sigsetjmp:
__sigsetjmp:
mov 4(%esp),%eax mov 4(%esp),%eax
mov 8(%esp),%ecx mov 8(%esp),%ecx
mov %ecx,24(%eax) mov %ecx,24(%eax)

View file

@ -1,6 +1,9 @@
.global sigsetjmp .global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function .type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp: sigsetjmp:
__sigsetjmp:
swi r6, r5, 72 swi r6, r5, 72
beqi r6, setjmp@PLT beqi r6, setjmp@PLT

View file

@ -1,8 +1,11 @@
.set noreorder .set noreorder
.global sigsetjmp .global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function .type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp: sigsetjmp:
__sigsetjmp:
lui $gp, %hi(_gp_disp) lui $gp, %hi(_gp_disp)
addiu $gp, %lo(_gp_disp) addiu $gp, %lo(_gp_disp)
beq $5, $0, 1f beq $5, $0, 1f

View file

@ -1,6 +1,9 @@
.global sigsetjmp .global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,%function .type sigsetjmp,%function
.type __sigsetjmp,%function
sigsetjmp: sigsetjmp:
__sigsetjmp:
#int sigsetjmp(sigjmp_buf buf, int save) #int sigsetjmp(sigjmp_buf buf, int save)
# r3 r4 # r3 r4
#0) store save into buf->__fl #0) store save into buf->__fl

View file

@ -1,6 +1,9 @@
.global sigsetjmp .global sigsetjmp
.type sigsetjmp, @function .global __sigsetjmp
.type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp: sigsetjmp:
__sigsetjmp:
mov.l r5, @(36,r4) mov.l r5, @(36,r4)
tst r5, r5 tst r5, r5
bf 2f bf 2f

View file

@ -1,5 +1,6 @@
#include <setjmp.h> #include <setjmp.h>
#include <signal.h> #include <signal.h>
#include "libc.h"
/* !!! This function will not work unless the compiler performs /* !!! This function will not work unless the compiler performs
* tail call optimization. Machine-specific asm versions should * tail call optimization. Machine-specific asm versions should
@ -12,3 +13,5 @@ int sigsetjmp(sigjmp_buf buf, int save)
pthread_sigmask(SIG_SETMASK, 0, (sigset_t *)buf->__ss); pthread_sigmask(SIG_SETMASK, 0, (sigset_t *)buf->__ss);
return setjmp(buf); return setjmp(buf);
} }
weak_alias(sigsetjmp, __sigsetjmp);

View file

@ -1,7 +1,10 @@
/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ /* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
.global sigsetjmp .global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function .type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp: sigsetjmp:
__sigsetjmp:
andl %esi,%esi andl %esi,%esi
movq %rsi,64(%rdi) movq %rsi,64(%rdi)
jz 1f jz 1f

View file

@ -1,7 +1,10 @@
/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ /* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
.global sigsetjmp .global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function .type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp: sigsetjmp:
__sigsetjmp:
andl %esi,%esi andl %esi,%esi
movq %rsi,64(%rdi) movq %rsi,64(%rdi)
jz 1f jz 1f