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	.text
30	.globl	fn1
31	.ent	fn1
32fn1:
33	.frame	$sp, 16, $26, 0
34	ldgp	$gp, 0($27)
35	subq	$sp, 16, $sp
36	stq	$26, 0($sp)
37	stq	$9, 8($sp)
38	.prologue 1
39
40	rduniq
41	mov	$0, $9
42
43	/* GD */
44	lda	$16, sg1($gp)			!tlsgd!1
45	ldq	$27, __tls_get_addr($gp)	!literal!1
46	jsr	$26, ($27), __tls_get_addr	!lituse_tlsgd!1
47	ldgp	$gp, 0($26)
48
49	/* GD against hidden symbol */
50	lda	$16, sh2($gp)			!tlsgd!2
51	ldq	$27, __tls_get_addr($gp)	!literal!2
52	jsr	$26, ($27), __tls_get_addr	!lituse_tlsgd!2
53	ldgp	$gp, 0($26)
54
55	/* LD */
56	lda	$16, sl1($gp)			!tlsldm!3
57	ldq	$27, __tls_get_addr($gp)	!literal!3
58	jsr	$26, ($27), __tls_get_addr	!lituse_tlsldm!3
59	ldgp	$gp, 0($26)
60	lda	$1, sl1+1($0)			!dtprel
61
62	/* LD with 4 variables */
63	lda	$16, sh1($gp)			!tlsldm!4
64	ldq	$27, __tls_get_addr($gp)	!literal!4
65	jsr	$26, ($27), __tls_get_addr	!lituse_tlsldm!4
66	ldgp	$gp, 0($26)
67	lda	$1, sh1($0)			!dtprel
68	lda	$1, sH1+2($0)			!dtprel
69	ldah	$1, sh5+3($0)			!dtprelhi
70	lda	$1, sh5+3($1)			!dtprello
71	ldq	$1, sH5+1($gp)			!gotdtprel
72	addq	$1, $0, $1
73
74	/* IE against global */
75	ldq	$1, sg2($gp)			!gottprel
76	addq	$1, $9, $1
77
78	/* IE against local and hidden */
79	ldq	$1, sl2($gp)			!gottprel
80	ldq	$2, sh2($gp)			!gottprel
81	addq	$1, $9, $1
82	addq	$2, $9, $2
83
84	ldq	$26, 0($sp)
85	addq	$sp, 16, $sp
86	ret
87	.end	fn1
88