OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [ld/] [testsuite/] [ld-i386/] [tlsbinpic.s] - Blame information for rev 825

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 38 julius
        /* Force .got aligned to 4K, so it very likely gets at 0x804a100
2
           (0x60 bytes .tdata and 0xa0 bytes .dynamic)  */
3
        .section ".tdata", "awT", @progbits
4
        .balign 4096
5
        .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
6
        .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
7
        .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
8
sg1:    .long 17
9
sg2:    .long 18
10
sg3:    .long 19
11
sg4:    .long 20
12
sg5:    .long 21
13
sg6:    .long 22
14
sg7:    .long 23
15
sg8:    .long 24
16
sl1:    .long 65
17
sl2:    .long 66
18
sl3:    .long 67
19
sl4:    .long 68
20
sl5:    .long 69
21
sl6:    .long 70
22
sl7:    .long 71
23
sl8:    .long 72
24
sh1:    .long 257
25
sh2:    .long 258
26
sh3:    .long 259
27
sh4:    .long 260
28
sh5:    .long 261
29
sh6:    .long 262
30
sh7:    .long 263
31
sh8:    .long 264
32
        /* Force .text aligned to 4K, so it very likely gets at 0x8049000.  */
33
        .text
34
        .balign 4096
35
        .globl  fn2
36
        .type   fn2,@function
37
fn2:
38
        pushl   %ebp
39
        movl    %esp, %ebp
40
        pushl   %ebx
41
        pushl   %eax
42
        call    1f
43
1:      popl    %ebx
44
        addl    $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
45
        nop;nop;nop;nop
46
 
47
        /* GD -> IE because variable is not defined in executable */
48
        leal    sG1@tlsgd(,%ebx,1), %eax
49
        call    ___tls_get_addr@plt
50
        nop;nop;nop;nop
51
 
52
        /* GD -> IE because variable is not defined in executable where
53
           the variable is referenced through @gottpoff too */
54
        leal    sG2@tlsgd(,%ebx,1), %eax
55
        call    ___tls_get_addr@plt
56
        nop;nop;nop;nop
57
 
58
        /* GD -> IE because variable is not defined in executable where
59
           the variable is referenced through @gotntpoff too */
60
        leal    sG3@tlsgd(,%ebx,1), %eax
61
        call    ___tls_get_addr@plt
62
        nop;nop;nop;nop
63
 
64
        /* GD -> IE because variable is not defined in executable where
65
           the variable is referenced through @gottpoff and @gotntpoff too */
66
        leal    sG4@tlsgd(,%ebx,1), %eax
67
        call    ___tls_get_addr@plt
68
        nop;nop;nop;nop
69
 
70
        /* GD -> LE with global variable defined in executable */
71
        leal    sg1@tlsgd(,%ebx,1), %eax
72
        call    ___tls_get_addr@plt
73
        nop;nop;nop;nop
74
 
75
        /* GD -> LE with local variable defined in executable */
76
        leal    sl1@tlsgd(,%ebx,1), %eax
77
        call    ___tls_get_addr@plt
78
        nop;nop;nop;nop
79
 
80
        /* GD -> LE with hidden variable defined in executable */
81
        leal    sh1@tlsgd(,%ebx,1), %eax
82
        call    ___tls_get_addr@plt
83
        nop;nop;nop;nop
84
 
85
        /* LD -> LE */
86
        leal    sl1@tlsldm(%ebx), %eax
87
        call    ___tls_get_addr@PLT
88
        nop;nop
89
        leal    sl1@dtpoff(%eax), %edx
90
        nop;nop
91
        leal    sl2@dtpoff(%eax), %ecx
92
        nop;nop;nop;nop
93
 
94
        /* LD -> LE against hidden variables */
95
        leal    sh1@tlsldm(%ebx), %eax
96
        call    ___tls_get_addr@PLT
97
        nop;nop
98
        leal    sh1@dtpoff(%eax), %edx
99
        nop;nop
100
        leal    sh2@dtpoff(%eax), %ecx
101
        nop;nop;nop;nop
102
 
103
        /* @gottpoff IE against global var  */
104
        movl    %gs:0, %ecx
105
        nop;nop
106
        subl    sG2@gottpoff(%ebx), %ecx
107
        nop;nop;nop;nop
108
 
109
        /* @gottpoff IE against global var  */
110
        movl    %gs:0, %eax
111
        nop;nop
112
        subl    sG4@gottpoff(%ebx), %eax
113
        nop;nop;nop;nop
114
 
115
        /* @gotntpoff IE against global var  */
116
        movl    %gs:0, %ecx
117
        nop;nop
118
        addl    sG3@gotntpoff(%ebx), %ecx
119
        nop;nop;nop;nop
120
 
121
        /* @gotntpoff IE against global var  */
122
        movl    %gs:0, %eax
123
        nop;nop
124
        addl    sG4@gotntpoff(%ebx), %eax
125
        nop;nop;nop;nop
126
 
127
        /* @gottpoff IE -> LE against global var defined in exec */
128
        movl    %gs:0, %ecx
129
        nop;nop
130
        subl    sg1@gottpoff(%ebx), %ecx
131
        nop;nop;nop;nop
132
 
133
        /* @gotntpoff IE -> LE against local var */
134
        movl    %gs:0, %ecx
135
        nop;nop
136
        addl    sl1@gotntpoff(%ebx), %eax
137
        nop;nop;nop;nop
138
 
139
        /* @gottpoff IE -> LE against hidden var */
140
        movl    %gs:0, %ecx
141
        nop;nop
142
        subl    sh1@gottpoff(%ebx), %ecx
143
        nop;nop;nop;nop
144
 
145
        /* Direct access through %gs  */
146
 
147
        /* @gotntpoff IE against global var  */
148
        movl    sG5@gotntpoff(%ebx), %ecx
149
        nop;nop
150
        movl    %gs:(%ecx), %edx
151
        nop;nop;nop;nop
152
 
153
        /* @gotntpoff IE->LE against local var  */
154
        movl    sl5@gotntpoff(%ebx), %eax
155
        nop;nop
156
        movl    %gs:(%eax), %edx
157
        nop;nop;nop;nop
158
 
159
        /* @gotntpoff IE->LE against hidden var  */
160
        movl    sh5@gotntpoff(%ebx), %edx
161
        nop;nop
162
        movl    %gs:(%edx), %edx
163
        nop;nop;nop;nop
164
 
165
        /* GD -> IE because variable is not defined in executable */
166
        leal    sG1@tlsgd(%ebx), %eax
167
        call    ___tls_get_addr@plt
168
        nop;nop;nop;nop;nop
169
 
170
        movl    -4(%ebp), %ebx
171
        leave
172
        ret

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.