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