Home | History | Annotate | Download | only in ld-xtensa
      1 	.section ".tdata", "awT", @progbits
      2 	.global sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
      3 	.global sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
      4 	.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
      5 	.align	4
      6 sg1:	.long	17
      7 sg2:	.long	18
      8 sg3:	.long	19
      9 sg4:	.long	20
     10 sg5:	.long	21
     11 sg6:	.long	22
     12 sg7:	.long	23
     13 sg8:	.long	24
     14 sl1:	.long	65
     15 sl2:	.long	66
     16 sl3:	.long	67
     17 sl4:	.long	68
     18 sl5:	.long	69
     19 sl6:	.long	70
     20 sl7:	.long	71
     21 sl8:	.long	72
     22 sh1:	.long	157
     23 sh2:	.long	158
     24 sh3:	.long	159
     25 sh4:	.long	160
     26 sh5:	.long	161
     27 sh6:	.long	162
     28 sh7:	.long	163
     29 sh8:	.long	164
     30 
     31 	.text
     32 	.global	_start
     33 	.type	_start, @function
     34 _start:
     35 	entry	sp, 32
     36 
     37 	/* GD -> IE because variable is not defined in executable */
     38 	movi	a8, sG1@tlsfunc
     39 	movi	a10, sG1@tlsarg
     40 	callx8.tls a8, sG1@tlscall
     41 
     42 	/* GD -> IE because variable is not defined in executable where
     43 	   the variable is referenced through IE too */
     44 	movi	a8, sG2@tlsfunc
     45 	movi	a10, sG2@tlsarg
     46 	callx8.tls a8, sG2@tlscall
     47 
     48 	/* GD -> LE with global variable defined in executable */
     49 	movi	a8, sg1@tlsfunc
     50 	movi	a10, sg1@tlsarg
     51 	callx8.tls a8, sg1@tlscall
     52 
     53 	/* GD -> LE with local variable defined in executable */
     54 	movi	a8, sl1@tlsfunc
     55 	movi	a10, sl1@tlsarg
     56 	callx8.tls a8, sl1@tlscall
     57 
     58 	/* GD -> LE with hidden variable defined in executable */
     59 	movi	a8, sh1@tlsfunc
     60 	movi	a10, sh1@tlsarg
     61 	callx8.tls a8, sh1@tlscall
     62 
     63 	/* LD -> LE */
     64 	movi   a8, _TLS_MODULE_BASE_@tlsfunc
     65 	movi   a10, _TLS_MODULE_BASE_@tlsarg
     66 	callx8.tls a8, _TLS_MODULE_BASE_@tlscall
     67 	movi   a12, 1+sl1@dtpoff
     68 	add    a12, a12, a10
     69 	movi   a13, sl2@dtpoff+2
     70 	add    a13, a13, a10
     71 
     72 	/* LD -> LE against hidden variables */
     73 	movi   a12, sh1@dtpoff
     74 	add    a12, a12, a10
     75 	movi   a13, 3+sh2@dtpoff
     76 	add    a13, a13, a10
     77 
     78 	/* IE against global var */
     79 	rur	a2, THREADPTR
     80 	movi	a3, sG2@tpoff
     81 	add	a3, a3, a2
     82 
     83 	/* IE -> LE against global var defined in exec */
     84 	rur	a4, THREADPTR
     85 	movi	a5, sg1@tpoff
     86 	add	a5, a5, a4
     87 
     88 	/* IE -> LE against local var */
     89 	rur	a6, THREADPTR
     90 	movi	a7, sl1@tpoff
     91 	add	a7, a7, a6
     92 
     93 	/* IE -> LE against hidden var */
     94 	rur	a8, THREADPTR
     95 	movi	a9, sh1@tpoff
     96 	add	a9, a9, a8
     97 
     98 	retw
     99