1 .section ".tdata", "awT", @progbits 2 .globl sg1, sg2 3 .globl sh1, sh2 4 .hidden sh1, sh2 5sg1: .long 17 6sg2: .long 18 7sl1: .long 65 8sl2: .long 66 9sh1: .long 257 10sh2: .long 258 11 .text 12 .align 1 13 .globl fn1 14 .type fn1,@function 15fn1: 16 mov.l r12,@-r15 17 mov.l r14,@-r15 18 sts.l pr,@-r15 19 mova .L3,r0 20 mov.l .L3,r12 21 add r0,r12 22 mov r15,r14 23 nop;nop;nop;nop 24 25 ! GD 26 mov.l 1f,r4 27 mova 2f,r0 28 mov.l 2f,r1 29 add r0,r1 30 jsr @r1 31 add r12,r4 32 bra 3f 33 nop 34 .align 2 351: .long sg1@TLSGD 362: .long __tls_get_addr@PLT 373: 38 nop;nop;nop;nop 39 40 ! GD -> IE because variable is referenced through @GOTTPOFF too 41 mov.l 1f,r4 42 mova 2f,r0 43 mov.l 2f,r1 44 add r0,r1 45 jsr @r1 46 add r12,r4 47 bra 3f 48 nop 49 .align 2 501: .long sg2@TLSGD 512: .long __tls_get_addr@PLT 523: 53 nop;nop;nop;nop 54 55 ! GD against local variable 56 mov.l 1f,r4 57 mova 2f,r0 58 mov.l 2f,r1 59 add r0,r1 60 jsr @r1 61 add r12,r4 62 bra 3f 63 nop 64 .align 2 651: .long sl1@TLSGD 662: .long __tls_get_addr@PLT 673: 68 nop;nop;nop;nop 69 70 ! GD -> IE against local variable referenced through @GOTTPOFF too 71 mov.l 1f,r4 72 mova 2f,r0 73 mov.l 2f,r1 74 add r0,r1 75 jsr @r1 76 add r12,r4 77 bra 3f 78 nop 79 .align 2 801: .long sl2@TLSGD 812: .long __tls_get_addr@PLT 823: 83 nop;nop;nop;nop 84 85 ! GD against hidden and local variable 86 mov.l 1f,r4 87 mova 2f,r0 88 mov.l 2f,r1 89 add r0,r1 90 jsr @r1 91 add r12,r4 92 bra 3f 93 nop 94 .align 2 951: .long sh1@TLSGD 962: .long __tls_get_addr@PLT 973: 98 nop;nop;nop;nop 99 100 ! GD -> IE against hidden and local variable referenced through 101 ! @GOTTPOFF too 102 mov.l 1f,r4 103 mova 2f,r0 104 mov.l 2f,r1 105 add r0,r1 106 jsr @r1 107 add r12,r4 108 bra 3f 109 nop 110 .align 2 1111: .long sh2@TLSGD 1122: .long __tls_get_addr@PLT 1133: 114 nop;nop;nop;nop 115 116 ! GD against hidden but not local variable 117 mov.l 1f,r4 118 mova 2f,r0 119 mov.l 2f,r1 120 add r0,r1 121 jsr @r1 122 add r12,r4 123 bra 3f 124 nop 125 .align 2 1261: .long sH1@TLSGD 1272: .long __tls_get_addr@PLT 1283: 129 nop;nop;nop;nop 130 131 ! GD -> IE against hidden but not local variable referenced through 132 ! @GOTTPOFF too 133 mov.l 1f,r4 134 mova 2f,r0 135 mov.l 2f,r1 136 add r0,r1 137 jsr @r1 138 add r12,r4 139 bra 3f 140 nop 141 .align 2 1421: .long sH2@TLSGD 1432: .long __tls_get_addr@PLT 1443: 145 nop;nop;nop;nop 146 147 ! LD 148 mov.l 1f,r4 149 mova 2f,r0 150 mov.l 2f,r1 151 add r0,r1 152 jsr @r1 153 add r12,r4 154 bra 3f 155 nop 156 .align 2 1571: .long sl1@TLSLDM 1582: .long __tls_get_addr@PLT 1593: 160 nop;nop 161 mov.l .L4,r1 162 add r0,r1 163 nop;nop 164 mov.l .L5,r2 165 add r0,r2 166 nop;nop;nop;nop 167 168 ! LD against hidden and local variables 169 mov.l 1f,r4 170 mova 2f,r0 171 mov.l 2f,r1 172 add r0,r1 173 jsr @r1 174 add r12,r4 175 bra 3f 176 nop 177 .align 2 1781: .long sl1@TLSLDM 1792: .long __tls_get_addr@PLT 1803: 181 nop;nop 182 mov.l .L6,r1 183 add r0,r1 184 nop;nop 185 mov.l .L7,r2 186 add r0,r2 187 nop;nop;nop;nop 188 189 ! LD against hidden but not local variables 190 mov.l 1f,r4 191 mova 2f,r0 192 mov.l 2f,r1 193 add r0,r1 194 jsr @r1 195 add r12,r4 196 bra 3f 197 nop 198 .align 2 1991: .long sH1@TLSLDM 2002: .long __tls_get_addr@PLT 2013: 202 nop;nop 203 mov.l .L8,r1 204 add r0,r1 205 nop;nop 206 mov.l .L9,r2 207 add r0,r2 208 nop;nop;nop;nop 209 210 ! @GOTTPOFF IE against global var 211 mov.l 1f,r0 212 stc gbr,r1 213 mov.l @(r0,r12),r0 214 bra 2f 215 add r0,r1 216 .align 2 2171: .long sg2@GOTTPOFF 2182: 219 nop;nop;nop;nop 220 221 ! @GOTTPOFF IE against local var 222 mov.l 1f,r0 223 stc gbr,r1 224 mov.l @(r0,r12),r0 225 bra 2f 226 add r0,r1 227 .align 2 2281: .long sl2@GOTTPOFF 2292: 230 nop;nop;nop;nop 231 232 ! @GOTTPOFF IE against hidden and local var 233 mov.l 1f,r0 234 stc gbr,r1 235 mov.l @(r0,r12),r0 236 bra 2f 237 add r0,r1 238 .align 2 2391: .long sh2@GOTTPOFF 2402: 241 nop;nop;nop;nop 242 243 ! @GOTTPOFF IE against hidden but not local var 244 mov.l 1f,r0 245 stc gbr,r1 246 mov.l @(r0,r12),r0 247 bra 2f 248 add r0,r1 249 .align 2 2501: .long sH2@GOTTPOFF 2512: 252 nop;nop;nop;nop 253 254 mov r14,r15 255 lds.l @r15+,pr 256 mov.l @r15+,r14 257 rts 258 mov.l @r15+,r12 259 260 .align 2 261.L3: .long _GLOBAL_OFFSET_TABLE_ 262.L4: .long sl1@DTPOFF 263.L5: .long sl1@DTPOFF + 4 264.L6: .long sh1@DTPOFF 265.L7: .long sh2@DTPOFF 266.L8: .long sH1@DTPOFF 267.L9: .long sH2@DTPOFF 268