1 .section ".tdata", "awT", @progbits 2 .balign 32 3 .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 4 .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 5 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 6sg1: .long 17 7sg2: .long 18 8sg3: .long 19 9sg4: .long 20 10sg5: .long 21 11sg6: .long 22 12sg7: .long 23 13sg8: .long 24 14sl1: .long 65 15sl2: .long 66 16sl3: .long 67 17sl4: .long 68 18sl5: .long 69 19sl6: .long 70 20sl7: .long 71 21sl8: .long 72 22sh1: .long 257 23sh2: .long 258 24sh3: .long 259 25sh4: .long 260 26sh5: .long 261 27sh6: .long 262 28sh7: .long 263 29sh8: .long 264 30 .text 31 .globl fn1 32 .type fn1,@function 33 .balign 64 34fn1: 35 /* Funtion prolog */ 36 stm %r6,%r14,24(%r15) 37 bras %r13,.LTN1 38 /* Literal pool */ 39.LT1: 40.LC0: 41 .long _GLOBAL_OFFSET_TABLE_-.LT1 42.LC1: 43 .long __tls_get_offset@plt-.LT1 44.LC2: 45 .long sg1@tlsgd 46.LC3: 47 .long sg2@tlsgd 48.LC4: 49 .long sl1@tlsgd 50.LC5: 51 .long sl2@tlsgd 52.LC6: 53 .long sh1@tlsgd 54.LC7: 55 .long sh2@tlsgd 56.LC8: 57 .long sH1@tlsgd 58.LC9: 59 .long sH2@tlsgd 60.LC10: 61 .long sl1@tlsldm 62.LC11: 63 .long sl1@dtpoff 64.LC12: 65 .long sl2@dtpoff 66.LC13: 67 .long sh1@tlsldm 68.LC14: 69 .long sh1@dtpoff 70.LC15: 71 .long sh2@dtpoff 72.LC16: 73 .long sH1@tlsldm 74.LC17: 75 .long sH1@dtpoff 76.LC18: 77 .long sH2@dtpoff 78.LC19: 79 .long sg2@gotntpoff 80.LC20: 81 .long sl2@gotntpoff 82.LC21: 83 .long sh2@gotntpoff 84.LC22: 85 .long sH2@gotntpoff 86.LTN1: 87 /* Funtion prolog */ 88 lr %r14,%r15 89 l %r12,.LC0-.LT1(%r13) 90 ahi %r15,-96 91 la %r12,0(%r12,%r13) 92 st %r14,0(%r14) 93 94 /* Extract TCB and load branch offset */ 95 ear %r9,%a0 96 l %r7,.LC1-.LT1(%r13) 97 98 /* GD */ 99 l %r2,.LC2-.LT1(%r13) 100 bas %r14,0(%r7,%r13):tls_gdcall:sg1 101 la %r2,0(%r2,%r9) 102 103 /* GD -> IE because variable is referenced through IE too */ 104 l %r2,.LC3-.LT1(%r13) 105 bas %r14,0(%r7,%r13):tls_gdcall:sg2 106 la %r2,0(%r2,%r9) 107 108 /* GD against local variable */ 109 l %r2,.LC4-.LT1(%r13) 110 bas %r14,0(%r7,%r13):tls_gdcall:sl1 111 la %r2,0(%r2,%r9) 112 113 /* GD -> IE against local variable referenced through IE too */ 114 l %r2,.LC5-.LT1(%r13) 115 bas %r14,0(%r7,%r13):tls_gdcall:sl2 116 la %r2,0(%r2,%r9) 117 118 /* GD against hidden and local variable */ 119 l %r2,.LC6-.LT1(%r13) 120 bas %r14,0(%r7,%r13):tls_gdcall:sh1 121 la %r2,0(%r2,%r9) 122 123 /* GD -> IE against hidden and local variable referenced through 124 IE too */ 125 l %r2,.LC7-.LT1(%r13) 126 bas %r14,0(%r7,%r13):tls_gdcall:sh2 127 la %r2,0(%r2,%r9) 128 129 /* GD against hidden but not local variable */ 130 l %r2,.LC8-.LT1(%r13) 131 bas %r14,0(%r7,%r13):tls_gdcall:sH1 132 la %r2,0(%r2,%r9) 133 134 /* GD -> IE against hidden but not local variable referenced through 135 IE too */ 136 l %r2,.LC9-.LT1(%r13) 137 bas %r14,0(%r7,%r13):tls_gdcall:sH2 138 la %r2,0(%r2,%r9) 139 140 /* LD */ 141 l %r2,.LC10-.LT1(%r13) 142 bas %r14,0(%r7,%r13):tls_ldcall:sl1 143 la %r3,0(%r2,%r9) 144 l %r4,.LC11-.LT1(%r13) 145 la %r5,0(%r4,%r3) 146 l %r4,.LC12-.LT1(%r13) 147 la %r5,0(%r4,%r3) 148 149 /* LD against hidden and local variables */ 150 l %r2,.LC13-.LT1(%r13) 151 bas %r14,0(%r7,%r13):tls_ldcall:sh1 152 la %r3,0(%r2,%r9) 153 l %r4,.LC14-.LT1(%r13) 154 la %r5,0(%r4,%r3) 155 l %r4,.LC13-.LT1(%r13) 156 la %r5,0(%r5,%r3) 157 158 /* LD against hidden but not local variables */ 159 l %r2,.LC16-.LT1(%r13) 160 bas %r14,0(%r7,%r13):tls_ldcall:sH1 161 la %r3,0(%r2,%r9) 162 l %r3,.LC17-.LT1(%r13) 163 la %r5,0(%r4,%r3) 164 l %r4,.LC18-.LT1(%r13) 165 la %r5,0(%r4,%r3) 166 167 /* IE against global var */ 168 l %r3,.LC19-.LT1(%r13) 169 l %r3,0(%r3,%r12):tls_load:sg2 170 la %r3,0(%r3,%r3) 171 172 /* IE against local var */ 173 l %r3,.LC20-.LT1(%r13) 174 l %r4,0(%r3,%r12):tls_load:sl2 175 la %r5,0(%r4,%r3) 176 177 /* IE against hidden and local var */ 178 l %r3,.LC21-.LT1(%r13) 179 l %r4,0(%r3,%r12):tls_load:sh2 180 la %r5,0(%r4,%r3) 181 182 /* IE against hidden but not local var */ 183 l %r3,.LC22-.LT1(%r13) 184 l %r4,0(%r3,%r12):tls_load:sH2 185 la %r5,0(%r4,%r3) 186 187 /* IE against global var with small got access (no optimization) */ 188 l %r3,sg5@gotntpoff(%r12) 189 la %r3,0(%r3,%r9) 190 191 /* IE against local var with small got access (no optimization) */ 192 l %r3,sl5@gotntpoff(%r12) 193 la %r3,0(%r3,%r9) 194 195 /* IE against hidden and local var with small got access 196 (no optimization) */ 197 l %r3,sh5@gotntpoff(%r12) 198 la %r3,0(%r3,%r9) 199 200 /* IE against hidden but not local var with small got access 201 (no optimization) */ 202 l %r3,sH5@gotntpoff(%r12) 203 la %r3,0(%r3,%r9) 204 205 /* Function epilog */ 206 lm %r6,%r14,120(%r15) 207 br %r14 208 209