1	.section ".tdata", "awT", @progbits
2	.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
3	.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
4	.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
5sg1:	.long 17
6sg2:	.long 18
7sg3:	.long 19
8sg4:	.long 20
9sg5:	.long 21
10sg6:	.long 22
11sg7:	.long 23
12sg8:	.long 24
13sl1:	.long 65
14sl2:	.long 66
15sl3:	.long 67
16sl4:	.long 68
17sl5:	.long 69
18sl6:	.long 70
19sl7:	.long 71
20sl8:	.long 72
21sh1:	.long 257
22sh2:	.long 258
23sh3:	.long 259
24sh4:	.long 260
25sh5:	.long 261
26sh6:	.long 262
27sh7:	.long 263
28sh8:	.long 264
29
30	.text
31	.globl	fn2
32	.ent	fn2
33fn2:
34	.frame	$sp, 16, $26, 0
35	ldgp	$gp, 0($27)
36	subq	$sp, 16, $sp
37	stq	$26, 0($sp)
38	.prologue 1
39
40	/* GD */
41	lda	$16, sG1($gp)			!tlsgd!1
42	ldq	$27, __tls_get_addr($gp)	!literal!1
43	jsr	$26, ($27), __tls_get_addr	!lituse_tlsgd!1
44	ldgp	$gp, 0($26)
45
46	/* GD against local symbol */
47	lda	$16, sl2($gp)			!tlsgd!2
48	ldq	$27, __tls_get_addr($gp)	!literal!2
49	jsr	$26, ($27), __tls_get_addr	!lituse_tlsgd!2
50	ldgp	$gp, 0($26)
51
52	/* LD */
53	lda	$16, sl1($gp)			!tlsldm!3
54	ldq	$27, __tls_get_addr($gp)	!literal!3
55	jsr	$26, ($27), __tls_get_addr	!lituse_tlsldm!3
56	ldgp	$gp, 0($26)
57	lda	$1, sl1+1($0)			!dtprel
58
59	/* LD with 4 variables */
60	lda	$16, sh1($gp)			!tlsldm!4
61	ldq	$27, __tls_get_addr($gp)	!literal!4
62	jsr	$26, ($27), __tls_get_addr	!lituse_tlsldm!4
63	ldgp	$gp, 0($26)
64	lda	$1, sh1($0)			!dtprel
65	lda	$1, sh2+2($0)			!dtprel
66	ldah	$1, sh3+3($0)			!dtprelhi
67	lda	$1, sh3+3($1)			!dtprello
68	ldq	$1, sh4+10($gp)			!gotdtprel
69	addq	$1, $0, $1
70
71	ldq	$26, 0($sp)
72	addq	$sp, 16, $sp
73	ret
74	.end	fn2
75