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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [testsuite/] [ld-sh/] [tlsbinpic.s] - Blame information for rev 184

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

Line No. Rev Author Line
1 106 khays
        ! Force .got aligned to 4K, so it very likely gets at 0x413000
2
        .data
3
        .balign 4096
4
        .section ".tdata", "awT", @progbits
5
        .globl sg1, sg2
6
        .globl sh1, sh2
7
        .hidden sh1, sh2
8
sg1:    .long 17
9
sg2:    .long 18
10
sl1:    .long 65
11
sl2:    .long 66
12
sh1:    .long 257
13
sh2:    .long 258
14
        ! Force .text aligned to 4K, so it very likely gets at 0x401000.
15
        .text
16
        .balign 4096
17
        .globl  fn2
18
        .type   fn2,@function
19
fn2:
20
        mov.l   r12,@-r15
21
        mov.l   r14,@-r15
22
        sts.l   pr,@-r15
23
        mova    .L3,r0
24
        mov.l   .L3,r12
25
        add     r0,r12
26
        mov     r15,r14
27
        nop;nop;nop;nop
28
 
29
        ! GD -> IE because variable is not defined in executable
30
        mov.l   1f,r4
31
        mova    2f,r0
32
        mov.l   2f,r1
33
        add     r0,r1
34
        jsr     @r1
35
        add     r12,r4
36
        bra     3f
37
        nop
38
        .align  2
39
1:      .long   sG1@TLSGD
40
2:      .long   __tls_get_addr@PLT
41
3:
42
        nop;nop;nop;nop
43
 
44
        ! GD -> IE because variable is not defined in executable where
45
        !   the variable is referenced through @gottpoff too
46
        mov.l   1f,r4
47
        mova    2f,r0
48
        mov.l   2f,r1
49
        add     r0,r1
50
        jsr     @r1
51
        add     r12,r4
52
        bra     3f
53
        nop
54
        .align  2
55
1:      .long   sG2@TLSGD
56
2:      .long   __tls_get_addr@PLT
57
3:
58
        nop;nop;nop;nop
59
 
60
        ! GD -> LE with global variable defined in executable
61
        mov.l   1f,r4
62
        mova    2f,r0
63
        mov.l   2f,r1
64
        add     r0,r1
65
        jsr     @r1
66
        add     r12,r4
67
        bra     3f
68
        nop
69
        .align  2
70
1:      .long   sg1@TLSGD
71
2:      .long   __tls_get_addr@PLT
72
3:
73
        nop;nop;nop;nop
74
 
75
        ! GD -> LE with local variable defined in executable
76
        mov.l   1f,r4
77
        mova    2f,r0
78
        mov.l   2f,r1
79
        add     r0,r1
80
        jsr     @r1
81
        add     r12,r4
82
        bra     3f
83
        nop
84
        .align  2
85
1:      .long   sl1@TLSGD
86
2:      .long   __tls_get_addr@PLT
87
3:
88
        nop;nop;nop;nop
89
 
90
        ! GD -> LE with hidden variable defined in executable
91
        mov.l   1f,r4
92
        mova    2f,r0
93
        mov.l   2f,r1
94
        add     r0,r1
95
        jsr     @r1
96
        add     r12,r4
97
        bra     3f
98
        nop
99
        .align  2
100
1:      .long   sh1@TLSGD
101
2:      .long   __tls_get_addr@PLT
102
3:
103
        nop;nop;nop;nop
104
 
105
        ! LD -> LE with local variable defined in executable
106
        mov.l   1f,r4
107
        mova    2f,r0
108
        mov.l   2f,r1
109
        add     r0,r1
110
        jsr     @r1
111
        add     r12,r4
112
        bra     3f
113
        nop
114
        .align  2
115
1:      .long   sl1@TLSLDM
116
2:      .long   __tls_get_addr@PLT
117
3:
118
        nop;nop
119
        mov.l   .L4,r1
120
        add     r0,r1
121
        nop;nop
122
        mov.l   .L5,r2
123
        add     r0,r2
124
        nop;nop;nop;nop
125
 
126
        ! LD -> LE against hidden variables
127
        mov.l   1f,r4
128
        mova    2f,r0
129
        mov.l   2f,r1
130
        add     r0,r1
131
        jsr     @r1
132
        add     r12,r4
133
        bra     3f
134
        nop
135
        .align  2
136
1:      .long   sh1@TLSLDM
137
2:      .long   __tls_get_addr@PLT
138
3:
139
        nop;nop
140
        mov.l   .L6,r1
141
        add     r0,r1
142
        nop;nop
143
        mov.l   .L7,r2
144
        add     r0,r2
145
        nop;nop;nop;nop
146
 
147
        ! @GOTTPOFF IE against global var
148
        mov.l   1f,r0
149
        stc     gbr,r1
150
        mov.l   @(r0,r12),r0
151
        bra     2f
152
        add     r0,r1
153
        .align  2
154
1:      .long   sG2@GOTTPOFF
155
2:
156
        nop;nop;nop;nop
157
 
158
        ! @GOTTPOFF IE against global var
159
        mov.l   1f,r0
160
        stc     gbr,r1
161
        mov.l   @(r0,r12),r0
162
        bra     2f
163
        add     r1,r0
164
        .align  2
165
1:      .long   sG4@GOTTPOFF
166
2:
167
        nop;nop;nop;nop
168
 
169
        ! @GOTTPOFF IE -> LE against global var defined in exec
170
        mov.l   1f,r0
171
        stc     gbr,r1
172
        mov.l   @(r0,r12),r0
173
        bra     2f
174
        add     r0,r1
175
        .align  2
176
1:      .long   sg1@GOTTPOFF
177
2:
178
        nop;nop;nop;nop
179
 
180
        ! @GOTTPOFF IE -> LE against hidden var
181
        mov.l   1f,r0
182
        stc     gbr,r1
183
        mov.l   @(r0,r12),r0
184
        bra     2f
185
        add     r0,r1
186
        .align  2
187
1:      .long   sh1@GOTTPOFF
188
2:
189
        nop;nop;nop;nop
190
 
191
        mov     r14,r15
192
        lds.l   @r15+,pr
193
        mov.l   @r15+,r14
194
        rts
195
        mov.l   @r15+,r12
196
 
197
        .align 2
198
.L3:    .long   _GLOBAL_OFFSET_TABLE_
199
.L4:    .long   sl1@DTPOFF
200
.L5:    .long   sl2@DTPOFF
201
.L6:    .long   sh1@DTPOFF
202
.L7:    .long   sh2@DTPOFF
203
        ! Fill page with 0.
204
        .space  .L8-.
205
        .balign 4096
206
.L8:

powered by: WebSVN 2.1.0

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