1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- .data
- .align 4096
- .section ".tbss"
- .align 4
- bl1: .word 0
- bl2: .word 0
- bl3: .word 0
- bl4: .word 0
- bl5: .word 0
- .text
- .align 4096
- .globl fn3
- .type fn3,#function
- .proc 04
- fn3:
- save %sp, -104, %sp
- .hidden _GLOBAL_OFFSET_TABLE_
- sethi %hi(_GLOBAL_OFFSET_TABLE_), %l1
- or %l1, %lo(_GLOBAL_OFFSET_TABLE_), %l1
- nop;nop;nop;nop
- /* IE against global var */
- sethi %tie_hi22(sg1), %o3
- add %o3, %tie_lo10(sg1), %o3
- ld [%l1 + %o3], %o2, %tie_ld(sg1)
- add %g7, %o2, %o4, %tie_add(sg1)
- nop;nop;nop;nop
- /* direct %g7 access IE against global var */
- sethi %tie_hi22(sg2), %o0
- add %o0, %tie_lo10(sg2), %o0
- ld [%l1 + %o0], %o0, %tie_ld(sg2)
- ld [%g7 + %o0], %o0, %tie_add(sg2)
- nop;nop;nop;nop
- /* IE against hidden var */
- sethi %tie_hi22(sh1), %o0
- add %o0, %tie_lo10(sh1), %o0
- ld [%l1 + %o0], %o0, %tie_ld(sh1)
- add %g7, %o0, %o0, %tie_add(sh1)
- nop;nop;nop;nop
- /* direct %g7 access IE against hidden var */
- sethi %tie_hi22(sh2), %o5
- add %o5, %tie_lo10(sh2), %o1
- ld [%l1 + %o1], %o2, %tie_ld(sh2)
- stb %o3, [%g7 + %o2], %tie_add(sh2)
- nop;nop;nop;nop
- /* IE against local var */
- sethi %tie_hi22(bl1), %o0
- add %o0, %tie_lo10(bl1), %o0
- ld [%l1 + %o0], %o0, %tie_ld(bl1)
- add %g7, %o0, %o0, %tie_add(bl1)
- nop;nop;nop;nop
- /* direct %g7 access IE against local var */
- sethi %tie_hi22(bl2), %o5
- add %o5, %tie_lo10(bl2), %o1
- ld [%l1 + %o1], %o2, %tie_ld(bl2)
- stb %o3, [%g7 + %o2], %tie_add(bl2)
- nop;nop;nop;nop
- /* LE, local var */
- sethi %tle_hix22(bl3+1), %o2
- xor %o2, %tle_lox10(bl3+1), %o4
- add %g7, %o4, %o0
- nop;nop;nop;nop
- /* LE, hidden var, direct %g7 access */
- sethi %tle_hix22(sh3), %o2
- xor %o2, %tle_lox10(sh3), %o2
- ld [%g7 + %o2], %o2
- nop;nop;nop;nop
- ret
- restore
|