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