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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [testsuite/] [ld-xtensa/] [tlsbin.s] - Blame information for rev 146

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

Line No. Rev Author Line
1 134 khays
        .section ".tdata", "awT", @progbits
2
        .global sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
3
        .global sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
4
        .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
5
        .align  4
6
sg1:    .long   17
7
sg2:    .long   18
8
sg3:    .long   19
9
sg4:    .long   20
10
sg5:    .long   21
11
sg6:    .long   22
12
sg7:    .long   23
13
sg8:    .long   24
14
sl1:    .long   65
15
sl2:    .long   66
16
sl3:    .long   67
17
sl4:    .long   68
18
sl5:    .long   69
19
sl6:    .long   70
20
sl7:    .long   71
21
sl8:    .long   72
22
sh1:    .long   157
23
sh2:    .long   158
24
sh3:    .long   159
25
sh4:    .long   160
26
sh5:    .long   161
27
sh6:    .long   162
28
sh7:    .long   163
29
sh8:    .long   164
30
 
31
        .text
32
        .global _start
33
        .type   _start, @function
34
_start:
35
        entry   sp, 32
36
 
37
        /* GD -> IE because variable is not defined in executable */
38
        movi    a8, sG1@tlsfunc
39
        movi    a10, sG1@tlsarg
40
        callx8.tls a8, sG1@tlscall
41
 
42
        /* GD -> IE because variable is not defined in executable where
43
           the variable is referenced through IE too */
44
        movi    a8, sG2@tlsfunc
45
        movi    a10, sG2@tlsarg
46
        callx8.tls a8, sG2@tlscall
47
 
48
        /* GD -> LE with global variable defined in executable */
49
        movi    a8, sg1@tlsfunc
50
        movi    a10, sg1@tlsarg
51
        callx8.tls a8, sg1@tlscall
52
 
53
        /* GD -> LE with local variable defined in executable */
54
        movi    a8, sl1@tlsfunc
55
        movi    a10, sl1@tlsarg
56
        callx8.tls a8, sl1@tlscall
57
 
58
        /* GD -> LE with hidden variable defined in executable */
59
        movi    a8, sh1@tlsfunc
60
        movi    a10, sh1@tlsarg
61
        callx8.tls a8, sh1@tlscall
62
 
63
        /* LD -> LE */
64
        movi   a8, _TLS_MODULE_BASE_@tlsfunc
65
        movi   a10, _TLS_MODULE_BASE_@tlsarg
66
        callx8.tls a8, _TLS_MODULE_BASE_@tlscall
67
        movi   a12, 1+sl1@dtpoff
68
        add    a12, a12, a10
69
        movi   a13, sl2@dtpoff+2
70
        add    a13, a13, a10
71
 
72
        /* LD -> LE against hidden variables */
73
        movi   a12, sh1@dtpoff
74
        add    a12, a12, a10
75
        movi   a13, 3+sh2@dtpoff
76
        add    a13, a13, a10
77
 
78
        /* IE against global var */
79
        rur     a2, THREADPTR
80
        movi    a3, sG2@tpoff
81
        add     a3, a3, a2
82
 
83
        /* IE -> LE against global var defined in exec */
84
        rur     a4, THREADPTR
85
        movi    a5, sg1@tpoff
86
        add     a5, a5, a4
87
 
88
        /* IE -> LE against local var */
89
        rur     a6, THREADPTR
90
        movi    a7, sl1@tpoff
91
        add     a7, a7, a6
92
 
93
        /* IE -> LE against hidden var */
94
        rur     a8, THREADPTR
95
        movi    a9, sh1@tpoff
96
        add     a9, a9, a8
97
 
98
        retw

powered by: WebSVN 2.1.0

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