Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-sparc / tlssunnopic32.s
1         .data
2         .align  4096
3         .section ".tbss"
4         .align  4
5 bl1:    .word 0
6 bl2:    .word 0
7 bl3:    .word 0
8 bl4:    .word 0
9 bl5:    .word 0
10         .text
11         .align  4096
12         .globl  fn3
13         .type   fn3,#function
14         .proc   04
15 fn3:
16         save    %sp, -104, %sp
17         .hidden _GLOBAL_OFFSET_TABLE_
18         sethi   %hi(_GLOBAL_OFFSET_TABLE_), %l1
19         or      %l1, %lo(_GLOBAL_OFFSET_TABLE_), %l1
20         nop;nop;nop;nop
21
22         /* IE against global var  */
23         sethi   %tie_hi22(sg1), %o3
24         add     %o3, %tie_lo10(sg1), %o3
25         ld      [%l1 + %o3], %o2, %tie_ld(sg1)
26         add     %g7, %o2, %o4, %tie_add(sg1)
27         nop;nop;nop;nop
28
29         /* direct %g7 access IE against global var  */
30         sethi   %tie_hi22(sg2), %o0
31         add     %o0, %tie_lo10(sg2), %o0
32         ld      [%l1 + %o0], %o0, %tie_ld(sg2)
33         ld      [%g7 + %o0], %o0, %tie_add(sg2)
34         nop;nop;nop;nop
35
36         /* IE against hidden var */
37         sethi   %tie_hi22(sh1), %o0
38         add     %o0, %tie_lo10(sh1), %o0
39         ld      [%l1 + %o0], %o0, %tie_ld(sh1)
40         add     %g7, %o0, %o0, %tie_add(sh1)
41         nop;nop;nop;nop
42
43         /* direct %g7 access IE against hidden var */
44         sethi   %tie_hi22(sh2), %o5
45         add     %o5, %tie_lo10(sh2), %o1
46         ld      [%l1 + %o1], %o2, %tie_ld(sh2)
47         stb     %o3, [%g7 + %o2], %tie_add(sh2)
48         nop;nop;nop;nop
49
50         /* IE against local var  */
51         sethi   %tie_hi22(bl1), %o0
52         add     %o0, %tie_lo10(bl1), %o0
53         ld      [%l1 + %o0], %o0, %tie_ld(bl1)
54         add     %g7, %o0, %o0, %tie_add(bl1)
55         nop;nop;nop;nop
56
57         /* direct %g7 access IE against local var  */
58         sethi   %tie_hi22(bl2), %o5
59         add     %o5, %tie_lo10(bl2), %o1
60         ld      [%l1 + %o1], %o2, %tie_ld(bl2)
61         stb     %o3, [%g7 + %o2], %tie_add(bl2)
62         nop;nop;nop;nop
63
64         /* LE, local var  */
65         sethi   %tle_hix22(bl3+1), %o2
66         xor     %o2, %tle_lox10(bl3+1), %o4
67         add     %g7, %o4, %o0
68         nop;nop;nop;nop
69
70         /* LE, hidden var, direct %g7 access  */
71         sethi   %tle_hix22(sh3), %o2
72         xor     %o2, %tle_lox10(sh3), %o2
73         ld      [%g7 + %o2], %o2
74         nop;nop;nop;nop
75
76         ret
77         restore