1	.file	1 "tlsbin-o32.s"
2	.abicalls
3	.text
4	.align	2
5	.globl	__start
6	.ent	__start
7	.type	__start,@function
8__start:
9	.frame	$fp,16,$31
10	.mask	0x40000000,-8
11	.fmask	0x00000000,0
12	.set	noreorder
13	.cpload $25
14	.set	reorder
15	addiu	$sp,$sp,-16
16	sw	$fp,8($sp)
17	move	$fp,$sp
18	.cprestore	0
19
20	# General Dynamic
21	lw	$25,%call16(__tls_get_addr)($28)
22	addiu	$4,$28,%tlsgd(tlsbin_gd)
23	jal	$25
24
25	lw	$25,%call16(__tls_get_addr)($28)
26	addiu	$4,$28,%tlsgd(tlsvar_gd)
27	jal	$25
28
29	# Local Dynamic
30	lw	$25,%call16(__tls_get_addr)($28)
31	addiu	$4,$28,%tlsldm(tlsbin_ld)
32	jal	$25
33
34	move	$2,$2		# Arbitrary instructions
35
36	lui	$3,%dtprel_hi(tlsbin_ld)
37	addiu	$3,$3,%dtprel_lo(tlsbin_ld)
38	addu	$3,$3,$2
39
40	# Initial Exec
41	.set	push
42	.set	mips32r2
43	rdhwr	$2, $5
44	.set	pop
45	lw	$3,%gottprel(tlsbin_ie)($28)
46	addu	$3,$3,$2
47
48	lw	$3,%gottprel(tlsvar_ie)($28)
49	addu	$3,$3,$2
50
51	# Local Exec
52	.set	push
53	.set	mips32r2
54	rdhwr	$2, $5
55	.set	pop
56	lui	$3,%tprel_hi(tlsbin_le)
57	addiu	$3,$3,%tprel_lo(tlsbin_le)
58	addu	$3,$3,$2
59
60	move	$sp,$fp
61	lw	$fp,8($sp)
62	addiu	$sp,$sp,16
63	j	$31
64	.end	__start
65
66	.globl __tls_get_addr
67__tls_get_addr:
68	j $31
69
70	.section		.tbss,"awT",@nobits
71	.align	2
72	.global	tlsbin_gd
73	.type	tlsbin_gd,@object
74	.size	tlsbin_gd,4
75tlsbin_gd:
76	.space	4
77	.global	tlsbin_ie
78	.type	tlsbin_ie,@object
79	.size	tlsbin_ie,4
80tlsbin_ie:
81	.space	4
82
83	.section		.tdata,"awT"
84	.align	2
85	.global	tlsbin_ld
86	.hidden	tlsbin_ld
87	.type	tlsbin_ld,@object
88	.size	tlsbin_ld,4
89tlsbin_ld:
90	.word	1
91	.global	tlsbin_le
92	.hidden	tlsbin_le
93	.type	tlsbin_le,@object
94	.size	tlsbin_le,4
95tlsbin_le:
96	.word	1
97