Home | History | Annotate | Download | only in ld-sparc
      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