summaryrefslogtreecommitdiff
path: root/src/signal/mips/sigsetjmp.s
blob: 133ca777acf406e2ea0a00f5396f6c4311f2cfdf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.set noreorder

.global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp:
__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)
	jalr $25
	nop
	lw $gp, 28($sp)
	lw $ra, 24($sp)
	lw $4, 20($sp)
	addu $sp, $sp, 32
1:	lw $25, %call16(setjmp)($gp)
	jr $25
	nop