17
.hidden _GLOBAL_OFFSET_TABLE_
18
sethi %hh(_GLOBAL_OFFSET_TABLE_), %l1
19
sethi %lm(_GLOBAL_OFFSET_TABLE_), %l2
20
or %l1, %hm(_GLOBAL_OFFSET_TABLE_), %l1
21
or %l2, %lo(_GLOBAL_OFFSET_TABLE_), %l2
26
/* IE against global var */
27
sethi %tie_hi22(sg1), %o3
28
add %o3, %tie_lo10(sg1), %o3
29
ldx [%l1 + %o3], %o2, %tie_ldx(sg1)
30
add %g7, %o2, %o4, %tie_add(sg1)
33
/* direct %g7 access IE against global var */
34
sethi %tie_hi22(sg2), %o0
35
add %o0, %tie_lo10(sg2), %o0
36
ldx [%l1 + %o0], %o0, %tie_ldx(sg2)
37
lduw [%g7 + %o0], %o0, %tie_add(sg2)
40
/* IE against hidden var */
41
sethi %tie_hi22(sh1), %o0
42
add %o0, %tie_lo10(sh1), %o0
43
ldx [%l1 + %o0], %o0, %tie_ldx(sh1)
44
add %g7, %o0, %o0, %tie_add(sh1)
47
/* direct %g7 access IE against hidden var */
48
sethi %tie_hi22(sh2), %o5
49
add %o5, %tie_lo10(sh2), %o1
50
ldx [%l1 + %o1], %o2, %tie_ldx(sh2)
51
stb %o3, [%g7 + %o2], %tie_add(sh2)
54
/* IE against local var */
55
sethi %tie_hi22(bl1), %o0
56
add %o0, %tie_lo10(bl1), %o0
57
ldx [%l1 + %o0], %o0, %tie_ldx(bl1)
58
add %g7, %o0, %o0, %tie_add(bl1)
61
/* direct %g7 access IE against local var */
62
sethi %tie_hi22(bl2), %o5
63
add %o5, %tie_lo10(bl2), %o1
64
ldx [%l1 + %o1], %o2, %tie_ldx(bl2)
65
stb %o3, [%g7 + %o2], %tie_add(bl2)
69
sethi %tle_hix22(bl3+1), %o2
70
xor %o2, %tle_lox10(bl3+1), %o4
74
/* LE, hidden var, direct %g7 access */
75
sethi %tle_hix22(sh3), %o2
76
xor %o2, %tle_lox10(sh3), %o2