Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-sh / tlsbin.s
1         .section ".tbss", "awT", @nobits
2         .globl bg1, bg2
3 bg1:    .space 4
4 bg2:    .space 4
5 bl1:    .space 4
6 bl2:    .space 4
7         .text
8         .globl  _start
9         .type   _start,@function
10 _start:
11         mov.l   r12,@-r15
12         mov.l   r14,@-r15
13         mov     r15,r14
14         ! Set up .GOT pointer for non-pic @gottpoff sequences
15         mova    .L3,r0
16         mov.l   .L3,r12
17         add     r0,r12
18         nop;nop;nop;nop
19
20         ! @GOTTPOFF IE against global var
21         mov.l   1f,r0
22         stc     gbr,r1
23         mov.l   @(r0,r12),r0
24         bra     2f
25         add     r0,r1
26         .align  2
27 1:      .long   sG3@GOTTPOFF
28 2:
29         nop;nop;nop;nop
30
31         ! @GOTTPOFF IE -> LE against global var defined in exec
32         mov.l   1f,r0
33         stc     gbr,r1
34         mov.l   @(r0,r12),r0
35         bra     2f
36         add     r0,r1
37         .align  2
38 1:      .long   bg1@GOTTPOFF
39 2:
40         nop;nop;nop;nop
41
42         ! @GOTTPOFF IE -> LE against local var
43         mov.l   1f,r0
44         stc     gbr,r1
45         mov.l   @(r0,r12),r0
46         bra     2f
47         add     r0,r1
48         .align  2
49 1:      .long   bl2@GOTTPOFF
50 2:
51         nop;nop;nop;nop
52
53         ! @GOTTPOFF IE -> LE against hidden but not local var
54         mov.l   1f,r0
55         stc     gbr,r1
56         mov.l   @(r0,r12),r0
57         bra     2f
58         add     r0,r1
59         .align  2
60 1:      .long   sh2@GOTTPOFF
61 2:
62         nop;nop;nop;nop
63
64         ! LE @TPOFF, global var defined in exec
65         stc     gbr,r1
66         mov.l   .L4,r0
67         add     r1,r0
68         nop;nop;nop;nop
69
70         ! LE @TPOFF, local var
71         stc     gbr,r1
72         mov.l   .L5,r0
73         add     r1,r0
74         nop;nop;nop;nop
75
76         ! LE @TPOFF, hidden var defined in exec
77         stc     gbr,r1
78         mov.l   .L6,r0
79         add     r1,r0
80         nop;nop;nop;nop
81
82         mov     r14,r15
83         rts     
84         mov.l   @r15+,r14
85
86         .align  2
87 .L3:    .long   _GLOBAL_OFFSET_TABLE_
88 .L4:    .long   sg1@TPOFF
89 .L5:    .long   bl1@TPOFF
90 .L6:    .long   sh1@TPOFF