1	.section ".tbss", "awT", @nobits
2	.globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8
3bg1:	.space 4
4bg2:	.space 4
5bg3:	.space 4
6bg4:	.space 4
7bg5:	.space 4
8bg6:	.space 4
9bg7:	.space 4
10bg8:	.space 4
11bl1:	.space 4
12bl2:	.space 4
13bl3:	.space 4
14bl4:	.space 4
15bl5:	.space 4
16bl6:	.space 4
17bl7:	.space 4
18bl8:	.space 4
19	.text
20	.globl	_start
21	.type	_start,@function
22_start:
23	pushl	%ebp
24	movl	%esp, %ebp
25	/* Set up .GOT pointer for non-pic @gottpoff sequences */
26	call	1f
271:	popl	%ecx
28	addl	$_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
29	nop;nop;nop;nop
30
31	/* @gottpoff IE against global var  */
32	movl	%gs:0, %edx
33	nop;nop
34	subl	sG6@gottpoff(%ecx), %edx
35	nop;nop;nop;nop
36
37	/* @indntpoff IE against global var  */
38	movl	%gs:0, %eax
39	nop;nop
40	addl	sG7@indntpoff, %eax
41	nop;nop;nop;nop
42
43	/* @indntpoff direct %gs access IE against global var  */
44	movl	sG8@indntpoff, %edx
45	nop;nop
46	movl	%gs:(%edx), %eax
47	nop;nop;nop;nop
48
49	/* @gottpoff IE -> LE against global var defined in exec  */
50	movl	%gs:0, %edx
51	nop;nop
52	subl	bg6@gottpoff(%ecx), %edx
53	nop;nop;nop;nop
54
55	/* @indntpoff IE -> LE against global var defined in exec */
56	movl	%gs:0, %eax
57	nop;nop
58	addl	bg7@indntpoff, %eax
59	nop;nop;nop;nop
60
61	/* @indntpoff direct %gs access IE -> LE against global var defined
62	   in exec  */
63	movl	bg8@indntpoff, %edx
64	nop;nop
65	movl	%gs:(%edx), %eax
66	nop;nop;nop;nop
67
68	/* @gottpoff IE -> LE against local var  */
69	movl	%gs:0, %edx
70	nop;nop
71	subl	bl6@gottpoff(%ecx), %edx
72	nop;nop;nop;nop
73
74	/* @indntpoff IE -> LE against local var  */
75	movl	%gs:0, %eax
76	nop;nop
77	addl	bl7@indntpoff, %eax
78	nop;nop;nop;nop
79
80	/* @indntpoff direct %gs access IE -> LE against local var  */
81	movl	bl8@indntpoff, %edx
82	nop;nop
83	movl	%gs:(%edx), %eax
84	nop;nop;nop;nop
85
86	/* @gottpoff IE -> LE against hidden but not local var  */
87	movl	%gs:0, %edx
88	nop;nop
89	subl	sh6@gottpoff(%ecx), %edx
90	nop;nop;nop;nop
91
92	/* @indntpoff IE -> LE against hidden but not local var  */
93	movl	%gs:0, %eax
94	nop;nop
95	addl	sh7@indntpoff, %eax
96	nop;nop;nop;nop
97
98	/* @indntpoff direct %gs access IE -> LE against hidden but not
99	   local var  */
100	movl	sh8@indntpoff, %edx
101	nop;nop
102	movl	%gs:(%edx), %eax
103	nop;nop;nop;nop
104
105	/* LE @tpoff, global var defined in exec  */
106	movl	$sg1@tpoff, %edx
107	nop;nop
108	movl	%gs:0, %eax
109	nop;nop
110	subl	%edx, %eax
111	nop;nop;nop;nop
112
113	/* LE @tpoff, local var  */
114	movl	$-1+bl1@tpoff, %eax
115	nop;nop
116	movl	%gs:0, %edx
117	nop;nop
118	subl	%eax, %edx
119	nop;nop;nop;nop
120
121	/* LE @tpoff, hidden var defined in exec  */
122	movl	$sh1@tpoff-3, %eax
123	nop;nop
124	movl	%gs:0, %edx
125	nop;nop
126	subl	%eax, %edx
127	nop;nop;nop;nop
128
129	/* LE @ntpoff, global var defined in exec  */
130	movl	%gs:0, %eax
131	nop;nop
132	leal	sg2@ntpoff(%eax), %edx
133	nop;nop;nop;nop
134
135	/* LE @ntpoff, local var, non-canonical sequence  */
136	movl	$2+bl2@ntpoff, %eax
137	nop;nop
138	movl	%gs:0, %edx
139	nop;nop
140	addl	%eax, %edx
141	nop;nop;nop;nop
142
143	/* LE @ntpoff, hidden var defined in exec, non-canonical sequence */
144	movl	%gs:0, %edx
145	nop;nop
146	addl	$sh2@ntpoff+1, %edx
147	nop;nop;nop;nop
148
149	/* Direct %gs access  */
150
151	/* LE @ntpoff, global var defined in exec  */
152	movl	%gs:sg3@ntpoff, %eax
153	nop;nop;nop;nop
154
155	/* LE @ntpoff, local var  */
156	movl	%gs:bl3@ntpoff+3, %edx
157	nop;nop;nop;nop
158
159	/* LE @ntpoff, hidden var defined in exec  */
160	movl	%gs:1+sh3@ntpoff, %edx
161	nop;nop;nop;nop
162
163	movl    -4(%ebp), %ebx
164	leave
165	ret
166