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, -160, %sp
     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
     22 	sllx	%l1, 32, %l1
     23 	add	%l1, %l2, %l1
     24 	nop;nop;nop;nop
     25 
     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)
     31 	nop;nop;nop;nop
     32 
     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)
     38 	nop;nop;nop;nop
     39 
     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)
     45 	nop;nop;nop;nop
     46 
     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)
     52 	nop;nop;nop;nop
     53 
     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)
     59 	nop;nop;nop;nop
     60 
     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)
     66 	nop;nop;nop;nop
     67 
     68 	/* LE, local var  */
     69 	sethi	%tle_hix22(bl3+1), %o2
     70 	xor     %o2, %tle_lox10(bl3+1), %o4
     71 	add	%g7, %o4, %o0
     72 	nop;nop;nop;nop
     73 
     74 	/* LE, hidden var, direct %g7 access  */
     75 	sethi	%tle_hix22(sh3), %o2
     76 	xor     %o2, %tle_lox10(sh3), %o2
     77 	ld	[%g7 + %o2], %o2
     78 	nop;nop;nop;nop
     79 
     80 	return	%i7 + 8
     81 	nop
     82