* contrib: Remove directory.
[binutils.git] / ld / testsuite / ld-sh / tlsbin.s
blob642eb3d04d5f6ab4f5d97cad6d2480ccecefca97
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
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
29 nop;nop;nop;nop
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
40 nop;nop;nop;nop
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
51 nop;nop;nop;nop
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
62 nop;nop;nop;nop
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
70 ! LE @TPOFF, local var
71 stc gbr,r1
72 mov.l .L5,r0
73 add r1,r0
74 nop;nop;nop;nop
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
82 mov r14,r15
83 rts
84 mov.l @r15+,r14
86 .align 2
87 .L3: .long _GLOBAL_OFFSET_TABLE_
88 .L4: .long sg1@TPOFF
89 .L5: .long bl1@TPOFF
90 .L6: .long sh1@TPOFF