summaryrefslogtreecommitdiff
path: root/src/signal/mips/sigsetjmp.s
blob: ae9c542731f71d08fed126ba34b209aaa96cbc7f (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
.set noreorder

.global sigsetjmp
.type sigsetjmp,@function
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, 124
	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