bfd:
[deliverable/binutils-gdb.git] / ld / testsuite / ld-sparc / tlssunbin64.s
CommitLineData
b9734f35
JJ
1 .section ".tbss"
2 .align 4
3 .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8
4bg1: .word 0
5bg2: .word 0
6bg3: .word 0
7bg4: .word 0
8bg5: .word 0
9bg6: .word 0
10bg7: .word 0
11bg8: .word 0
12bl1: .word 0
13bl2: .word 0
14bl3: .word 0
15bl4: .word 0
16bl5: .word 0
17bl6: .word 0
18bl7: .word 0
19bl8: .word 0
20 .text
21 .globl _start
22 .type _start,#function
23 .proc 04
24_start:
25 save %sp, -160, %sp
26 .hidden _GLOBAL_OFFSET_TABLE_
27 sethi %hh(_GLOBAL_OFFSET_TABLE_), %l1
28 sethi %lm(_GLOBAL_OFFSET_TABLE_), %l2
29 or %l1, %hm(_GLOBAL_OFFSET_TABLE_), %l1
30 or %l2, %lo(_GLOBAL_OFFSET_TABLE_), %l2
31 sllx %l1, 32, %l1
32 add %l1, %l2, %l4
33 nop;nop;nop;nop
34
35 /* IE against global var */
36 sethi %tie_hi22(sG6), %o3
37 add %o3, %tie_lo10(sG6), %o3
38 ldx [%l4 + %o3], %o2, %tie_ldx(sG6)
39 add %g7, %o2, %o4, %tie_add(sG6)
40 nop;nop;nop;nop
41
42 /* IE -> LE against global var defined in exec */
43 sethi %tie_hi22(bg6), %o3
44 add %o3, %tie_lo10(bg6), %o5
45 ldx [%l4 + %o5], %o2, %tie_ldx(bg6)
46 add %g7, %o2, %o4, %tie_add(bg6)
47 nop;nop;nop;nop
48
49 /* IE -> LE against local var */
50 sethi %tie_hi22(bl6), %o3
51 add %o3, %tie_lo10(bl6), %o5
52 ldx [%l4 + %o5], %l2, %tie_ldx(bl6)
53 add %g7, %l2, %l2, %tie_add(bl6)
54 nop;nop;nop;nop
55
56 /* direct %g7 access IE -> LE against local var */
57 sethi %tie_hi22(bl8), %o3
58 add %o3, %tie_lo10(bl8), %o5
59 ldx [%l4 + %o5], %l2, %tie_ldx(bl8)
60 ldsw [%g7 + %l2], %l2, %tie_add(bl8)
61 nop;nop;nop;nop
62
63 /* IE -> LE against hidden but not local var */
64 sethi %tie_hi22(sh6), %o3
65 add %o3, %tie_lo10(sh6), %o5
66 ldx [%l4 + %o5], %l2, %tie_ldx(sh6)
67 add %g7, %l2, %l2, %tie_add(sh6)
68 nop;nop;nop;nop
69
70 /* direct %g7 access IE -> LE against hidden but not local var */
71 sethi %tie_hi22(bl8), %o3
72 add %o3, %tie_lo10(bl8), %o5
73 ldx [%l4 + %o5], %l2, %tie_ldx(bl8)
74 stb %l1, [%g7 + %l2], %tie_add(bl8)
75 nop;nop;nop;nop
76
77 /* LE, global var defined in exec */
78 sethi %tle_hix22(sg2), %l1
79 nop
80 xor %l1, %tle_lox10(sg2), %l2
81 nop
82 add %g7, %l2, %l3
83 nop;nop;nop;nop
84
85 /* LE, local var */
86 sethi %tle_hix22(bl2+2), %o0
87 xor %o0, %tle_lox10(bl2+2), %o0
88 add %g7, %o0, %o0
89 nop;nop;nop;nop
90
91 /* LE, hidden var defined in exec */
92 sethi %tle_hix22(sh2+1), %l1
93 xor %l1, %tle_lox10(sh2+1), %o5
94 add %g7, %o5, %o1
95 nop;nop;nop;nop
96
97 /* Direct %g7 access */
98
99 /* LE, global var defined in exec */
100 sethi %tle_hix22(sg3), %l1
101 xor %l1, %tle_lox10(sg3), %o5
102 ldx [%g7 + %o5], %o1
103 nop;nop;nop;nop
104
105 /* LE, local var */
106 sethi %tle_hix22(bl3 + 3), %o0
107 xor %o0, %tle_lox10(bl3 + 3), %o0
108 stb %o1, [%g7 + %o0]
109 nop;nop;nop;nop
110
111 /* LE, hidden var defined in exec */
112 sethi %tle_hix22(sh3 + 3), %o2
113 xor %o2, %tle_lox10(sh3 + 3), %o4
114 ldstub [%g7 + %o4], %o5
115 nop;nop;nop;nop
116
117 ret
118 restore
This page took 0.0379 seconds and 4 git commands to generate.