.global sigsetjmp .global __sigsetjmp .type sigsetjmp,@function .type __sigsetjmp,@function sigsetjmp: __sigsetjmp: move $t5, $a0 move $t6, $a1 # comparing save mask with 0, if equals to 0 then # sigsetjmp is equal to setjmp. beq $t6, $zero, 1f st.d $ra, $t5, 168 # save base of got so that we can use it later # once we return from 'longjmp' la.global $t8, setjmp jirl $ra, $t8, 0 move $a1, $a0 # Return from 'setjmp' or 'longjmp' ld.d $ra, $t5, 168 # Restore ra of sigsetjmp move $a0, $t5 .hidden __sigsetjmp_tail la.global $t8, __sigsetjmp_tail jr $t8 1: la.global $t8, setjmp jr $t8