@ -1,6 +1,9 @@
.global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,%function
.type __sigsetjmp,%function
sigsetjmp:
__sigsetjmp:
str a2,[a1,#256]
tst a2,a2
beq setjmp
.type sigsetjmp,@function
.type __sigsetjmp,@function
mov 4(%esp),%eax
mov 8(%esp),%ecx
mov %ecx,24(%eax)
swi r6, r5, 72
beqi r6, setjmp@PLT
@ -1,8 +1,11 @@
.set noreorder
lui $gp, %hi(_gp_disp)
addiu $gp, %lo(_gp_disp)
beq $5, $0, 1f
#int sigsetjmp(sigjmp_buf buf, int save)
# r3 r4
#0) store save into buf->__fl
.type sigsetjmp, @function
mov.l r5, @(36,r4)
tst r5, r5
bf 2f
@ -1,5 +1,6 @@
#include <setjmp.h>
#include <signal.h>
#include "libc.h"
/* !!! This function will not work unless the compiler performs
* 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);
return setjmp(buf);
}
weak_alias(sigsetjmp, __sigsetjmp);
@ -1,7 +1,10 @@
/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
andl %esi,%esi
movq %rsi,64(%rdi)
jz 1f