summaryrefslogtreecommitdiff
path: root/src/ldso/mips64/dlsym.s
blob: 32e0dddc403676cf5fe16392f2b10530175bc3cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.set	noreorder
.global	dlsym
.hidden	__dlsym
.type	dlsym,@function
dlsym:
	lui	$3, %hi(%neg(%gp_rel(dlsym)))
	daddiu	$3, $3, %lo(%neg(%gp_rel(dlsym)))
	daddu	$3, $3, $25
	move	$6, $ra
	ld	$25, %got_disp(__dlsym)($3)
	daddiu	$sp, $sp, -32
	sd	$ra, 24($sp)
	jalr	$25
	nop
	ld	$ra, 24($sp)
	jr	$ra
	daddiu	$sp, $sp, 32