1
2	.text
3	.ent	func1
4func1:
5	.frame $sp,0,$31
6	.set noreorder
7	.cpload $25		# 0000 lui	gp,hi(_gp_disp)
8				# 0004 addiu	gp,gp,lo(_gp_disp)
9				# 0008 addu	gp,gp,t9
10	.set reorder
11	.cprestore 8		# 000c sw	gp,8(sp)
12
13	jal	end		# 0010 lw	t9,got(.text)(gp)
14				# 0014 nop
15				# 0018 addiu	t9,t9,lo(end)
16				# 001c jalr	t9
17				# 0020 nop
18				# 0024 lw	gp,8(sp)
19
20	# Avoid confusion: avoid the 'lw' above being put into the delay
21	# slot for the jalr below!
22	.set noreorder
23	nop			# 0028 nop
24	.set reorder
25
26	jal	$25		# 002c jalr	t9
27				# 0030 nop
28				# 0034 lw	gp,8(sp)
29	.end	func1
30
31
32	.text
33	.ent	func2
34func2:
35	.frame $sp,0,$31
36	.set noreorder
37	.cpload $25		# 0038 lui	gp,hi(_gp_disp)
38				# 003c addiu	gp,gp,lo(_gp_disp)
39				# 0040 addu	gp,gp,t9
40	.set reorder
41	.cprestore 32768	# 0044 lui	at,0x1
42				# 0048 addu	at,at,sp
43				# 004c sw	gp,-32768(at)
44
45	jal	end		# 0050 lw	t9,got(.text)(gp)
46				# 0054 nop
47				# 0058 addiu	t9,t9,lo(end)
48				# 005c jalr	t9
49				# 0060 nop
50				# 0064 lui	at,0x1
51				# 0068 addu	at,at,sp
52				# 006c lw	gp,-32768(at)
53
54	# Avoid confusion: avoid the 'lw' above being put into the delay
55	# slot for the jalr below!
56	.set noreorder
57	nop			# 0070 nop
58	.set reorder
59
60	jal	$25		# 0074 jalr	t9
61				# 0078 nop
62				# 007c lui	at,0x1
63				# 0080 addu	at,at,sp
64				# 0084 lw	gp,-32768(at)
65	.end	func2
66
67
68	.text
69	.ent	func3
70func3:
71	.frame $sp,0,$31
72	.set noreorder
73	.cpload $25		# 0088 lui	gp,hi(_gp_disp)
74				# 008c addiu	gp,gp,lo(_gp_disp)
75				# 0090 addu	gp,gp,t9
76	.set reorder
77	.cprestore 65536	# 0094 lui	at,0x1
78				# 0098 addu	at,at,sp
79				# 009c sw	gp,0(at)
80
81	jal	end		# 00a0 lw	t9,got(.text)(gp)
82				# 00a4 nop
83				# 00a8 addiu	t9,t9,lo(end)
84				# 00ac jalr	t9
85				# 00b0 nop
86				# 00b4 lui	at,0x1
87				# 00b8 addu	at,at,sp
88				# 00bc lw	gp,0(at)
89
90	# Avoid confusion: avoid the 'lw' above being put into the delay
91	# slot for the jalr below!
92	.set noreorder
93	nop			# 00c0 nop
94	.set reorder
95
96	jal	$25		# 00c4 jalr	t9
97				# 00c8 nop
98				# 00cc lui	at,0x1
99				# 00d0 addu	at,at,sp
100				# 00d4 lw	gp,0(at)
101
102	.end	func3
103
104end:
105
106# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
107	.space	8
108