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 78