gas:
[binutils/dougsmingw.git] / ld / testsuite / ld-sparc / tlssunnopic32.s
blob6c0ec339477ae2ebb76017bc53538c216dc26234
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
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
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
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
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
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
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
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
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
76 ret
77 restore