diff options
Diffstat (limited to 'src/signal/mips/sigsetjmp.s')
-rw-r--r-- | src/signal/mips/sigsetjmp.s | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/signal/mips/sigsetjmp.s b/src/signal/mips/sigsetjmp.s index 133ca777..74b65ff6 100644 --- a/src/signal/mips/sigsetjmp.s +++ b/src/signal/mips/sigsetjmp.s @@ -9,22 +9,25 @@ __sigsetjmp: lui $gp, %hi(_gp_disp) addiu $gp, %lo(_gp_disp) beq $5, $0, 1f - addu $gp, $gp, $25 - subu $sp, $sp, 32 - sw $4, 20($sp) - sw $ra, 24($sp) - sw $gp, 28($sp) - addu $6, $4, 108 - li $5, 0 - li $4, 1 - sw $4, -4($6) - lw $25, %call16(sigprocmask)($gp) + addu $gp, $gp, $25 + + sw $ra, 104($4) + sw $16, 104+4+16($4) + + lw $25, %call16(setjmp)($gp) jalr $25 - nop - lw $gp, 28($sp) - lw $ra, 24($sp) - lw $4, 20($sp) - addu $sp, $sp, 32 + move $16, $4 + + move $5,$2 + move $4,$16 + lw $ra, 104($4) + lw $16, 104+4+16($4) + +.hidden __sigsetjmp_tail + lw $25, %call16(__sigsetjmp_tail)($gp) + jr $25 + nop + 1: lw $25, %call16(setjmp)($gp) jr $25 - nop + nop |