x86: Properly handle PLT expression in directive
[deliverable/binutils-gdb.git] / ld / testsuite / ld-i386 / tlsbin.s
CommitLineData
37e55690
JJ
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
This page took 0.75052 seconds and 4 git commands to generate.