Home | History | Annotate | Download | only in ld-arm
      1 @ we can relax local and non-weak globals for non-shared links
      2 
      3 	.arch	armv7-a
      4 	.text
      5 	.arm
      6 
      7 	.p2align 2
      8 foo:
      9 @tlscall global, manually relaxed to IE
     10 	ldr	r0, 1f
     11 2:	ldr	r0, [pc, r0]
     12 	nop
     13 	.p2align 2
     14 1:	.word	gd1(gottpoff) + (. - 2b - 8)
     15 
     16 	.p2align 2
     17 @tlscall global, should relax to IE
     18 	ldr	r0, 1f
     19 2:	blx	gd1(tlscall)
     20 	nop
     21 	.p2align 2
     22 1:	.word	gd1(tlsdesc) + (. - 2b)
     23 
     24 	.p2align 2
     25 @tlscall local, manually relaxed to LE
     26 	ldr	r0, 1f
     27 	nop
     28 	nop
     29 	.p2align 2
     30 1:	.word	ld1(tpoff)
     31 
     32 	.p2align 2
     33 @tlscall local, should relax to LE
     34 	ldr	r0, 1f
     35 2:	blx	ld1(tlscall)
     36 	nop
     37 	.p2align 2
     38 1:	.word	ld1(tlsdesc) + (. - 2b)
     39 
     40 	.p2align 2
     41 @open coded global, manually relaxed to IE
     42 	ldr	r0, 1f
     43 2:
     44 	add	r0, pc, r0
     45 	ldr	r1, [r0]
     46 	mov	r0, r1
     47 	nop
     48 	.p2align 2
     49 1:	.word	gd1(gottpoff) + (. - 2b - 8)
     50 
     51 	.p2align 2
     52 @open coded global, should relax to IE
     53 	ldr	r0, 1f
     54 2:
     55 .tlsdescseq gd1
     56 	add	r0, pc, r0
     57 .tlsdescseq gd1
     58 	ldr	r1, [r0,#4]
     59 .tlsdescseq gd1
     60 	blx	r1
     61 	nop
     62 	.p2align 2
     63 1:	.word	gd1(tlsdesc) + (. - 2b)
     64 
     65 	.p2align 2
     66 @open coded local, manually relaxed to LE
     67 	ldr	r0, 1f
     68 2:
     69 	nop
     70 	nop
     71 	nop
     72 	nop
     73 	.p2align 2
     74 1:	.word	ld1(tpoff)
     75 
     76 	.p2align 2
     77 @open coded local, should relax to LE
     78 	ldr	r0, 1f
     79 2:
     80 .tlsdescseq ld1
     81 	add	r0, pc, r0
     82 .tlsdescseq ld1
     83 	ldr	r1, [r0,#4]
     84 .tlsdescseq ld1
     85 	blx	r1
     86 	nop
     87 	.p2align 2
     88 1:	.word	ld1(tlsdesc) + (. - 2b)
     89 
     90 
     91 	.thumb
     92 	.p2align 1
     93 bar:
     94 @tlscall global, manually relaxed to IE
     95 	ldr	r0, 1f
     96 2:	add	r0, pc, r0
     97 	ldr	r0, [r0]
     98 	nop
     99 	.p2align 2
    100 1:	.word	gd1(gottpoff) + (. - 2b - 4)
    101 
    102 	.p2align 1
    103 @tlscall global, should relax to IE
    104 	ldr	r0, 1f
    105 2:	blx	gd1(tlscall)
    106 	nop
    107 	.p2align 2
    108 1:	.word	gd1(tlsdesc) + (. - 2b + 1)
    109 
    110 	.p2align 1
    111 @tlscall global, should relax to IE
    112 	ldr	r0, 1f
    113 2:	blx	r1(tlscall)
    114 	nop
    115 	.p2align 2
    116 1:	.word	r1(tlsdesc) + (. - 2b + 1)
    117 
    118 	.p2align 1
    119 @tlscall local, manually relaxed to LE
    120 	ldr	r0, 1f
    121 	nop
    122 	nop
    123 	.p2align 2
    124 1:	.word	ld1(tpoff)
    125 
    126 	.p2align 1
    127 @tlscall local, should relax to LE
    128 	ldr	r0, 1f
    129 2:	blx	ld1(tlscall)
    130 	nop
    131 	.p2align 2
    132 1:	.word	ld1(tlsdesc) + (. - 2b + 1)
    133 
    134 	.p2align 1
    135 @tlscall local, should relax to LE
    136 	ldr	r0, 1f
    137 2:	blx	r0(tlscall)
    138 	nop
    139 	.p2align 2
    140 1:	.word	r0(tlsdesc) + (. - 2b + 1)
    141 
    142 	.p2align 1
    143 @open coded global, manually relaxed to IE
    144 	ldr	r0, 1f
    145 2:
    146 	add	r0, pc
    147 	ldr	r1, [r0]
    148 	mov	r0, r1
    149 	nop
    150 	.p2align 2
    151 1:	.word	gd1(gottpoff) + (. - 2b - 4)
    152 
    153 	.p2align 1
    154 @open coded global, should relax to IE
    155 	ldr	r0, 1f
    156 2:
    157 .tlsdescseq gd1
    158 	add	r0, pc
    159 .tlsdescseq gd1
    160 	ldr	r1, [r0,#4]
    161 .tlsdescseq gd1
    162 	blx	r1
    163 	nop
    164 	.p2align 2
    165 1:	.word	gd1(tlsdesc) + (. - 2b + 1)
    166 
    167 	.p2align 1
    168 @open coded local, manually relaxed to LE
    169 	ldr	r0, 1f
    170 2:
    171 	nop
    172 	nop
    173 	nop
    174 	nop
    175 	.p2align 2
    176 1:	.word	ld1(tpoff)
    177 
    178 	.p2align 1
    179 @open coded local, should relax to LE
    180 	ldr	r0, 1f
    181 2:
    182 .tlsdescseq ld1
    183 	add	r0, pc
    184 .tlsdescseq ld1
    185 	ldr	r1, [r0,#4]
    186 .tlsdescseq ld1
    187 	blx	r1
    188 	nop
    189 	.p2align 2
    190 1:	.word	ld1(tlsdesc) + (. - 2b + 1)
    191 
    192 	.section .tdata,"awT"
    193 	.global	gd1
    194 gd1:	.space 4
    195 ld1:	.space 4
    196 	.globl r1
    197 r1:	.space 4
    198 r0:	.space 4
    199