1*c9945492SAndroid Build Coastguard Worker.set noreorder 2*c9945492SAndroid Build Coastguard Worker.global sigsetjmp 3*c9945492SAndroid Build Coastguard Worker.global __sigsetjmp 4*c9945492SAndroid Build Coastguard Worker.type sigsetjmp,@function 5*c9945492SAndroid Build Coastguard Worker.type __sigsetjmp,@function 6*c9945492SAndroid Build Coastguard Workersigsetjmp: 7*c9945492SAndroid Build Coastguard Worker__sigsetjmp: 8*c9945492SAndroid Build Coastguard Worker lui $3, %hi(%neg(%gp_rel(sigsetjmp))) 9*c9945492SAndroid Build Coastguard Worker addiu $3, $3, %lo(%neg(%gp_rel(sigsetjmp))) 10*c9945492SAndroid Build Coastguard Worker 11*c9945492SAndroid Build Coastguard Worker # comparing save mask with 0, if equals to 0 then 12*c9945492SAndroid Build Coastguard Worker # sigsetjmp is equal to setjmp. 13*c9945492SAndroid Build Coastguard Worker beq $5, $0, 1f 14*c9945492SAndroid Build Coastguard Worker addu $3, $3, $25 15*c9945492SAndroid Build Coastguard Worker sd $ra, 160($4) 16*c9945492SAndroid Build Coastguard Worker sd $16, 168($4) 17*c9945492SAndroid Build Coastguard Worker 18*c9945492SAndroid Build Coastguard Worker # save base of got so that we can use it later 19*c9945492SAndroid Build Coastguard Worker # once we return from 'longjmp' 20*c9945492SAndroid Build Coastguard Worker sd $3, 176($4) 21*c9945492SAndroid Build Coastguard Worker lw $25, %got_disp(setjmp)($3) 22*c9945492SAndroid Build Coastguard Worker jalr $25 23*c9945492SAndroid Build Coastguard Worker move $16, $4 24*c9945492SAndroid Build Coastguard Worker 25*c9945492SAndroid Build Coastguard Worker move $5, $2 # Return from 'setjmp' or 'longjmp' 26*c9945492SAndroid Build Coastguard Worker move $4, $16 # Restore the pointer-to-sigjmp_buf 27*c9945492SAndroid Build Coastguard Worker ld $ra, 160($4) # Restore ra of sigsetjmp 28*c9945492SAndroid Build Coastguard Worker ld $16, 168($4) # Restore $16 of sigsetjmp 29*c9945492SAndroid Build Coastguard Worker ld $3, 176($4) # Restore base of got 30*c9945492SAndroid Build Coastguard Worker 31*c9945492SAndroid Build Coastguard Worker.hidden __sigsetjmp_tail 32*c9945492SAndroid Build Coastguard Worker lw $25, %got_disp(__sigsetjmp_tail)($3) 33*c9945492SAndroid Build Coastguard Worker jr $25 34*c9945492SAndroid Build Coastguard Worker nop 35*c9945492SAndroid Build Coastguard Worker1: 36*c9945492SAndroid Build Coastguard Worker lw $25, %got_disp(setjmp)($3) 37*c9945492SAndroid Build Coastguard Worker jr $25 38*c9945492SAndroid Build Coastguard Worker nop 39