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