| 1 | .section ".tdata", "awT", @progbits |
| 2 | .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 |
| 3 | .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
| 4 | .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
| 5 | sg1: .long 17 |
| 6 | sg2: .long 18 |
| 7 | sg3: .long 19 |
| 8 | sg4: .long 20 |
| 9 | sg5: .long 21 |
| 10 | sg6: .long 22 |
| 11 | sg7: .long 23 |
| 12 | sg8: .long 24 |
| 13 | sl1: .long 65 |
| 14 | sl2: .long 66 |
| 15 | sl3: .long 67 |
| 16 | sl4: .long 68 |
| 17 | sl5: .long 69 |
| 18 | sl6: .long 70 |
| 19 | sl7: .long 71 |
| 20 | sl8: .long 72 |
| 21 | sh1: .long 257 |
| 22 | sh2: .long 258 |
| 23 | sh3: .long 259 |
| 24 | sh4: .long 260 |
| 25 | sh5: .long 261 |
| 26 | sh6: .long 262 |
| 27 | sh7: .long 263 |
| 28 | sh8: .long 264 |
| 29 | .text |
| 30 | .globl fn1 |
| 31 | .ent fn1 |
| 32 | fn1: |
| 33 | .frame $sp, 16, $26, 0 |
| 34 | ldgp $gp, 0($27) |
| 35 | subq $sp, 16, $sp |
| 36 | stq $26, 0($sp) |
| 37 | stq $9, 8($sp) |
| 38 | .prologue 1 |
| 39 | |
| 40 | rduniq |
| 41 | mov $0, $9 |
| 42 | |
| 43 | /* GD */ |
| 44 | lda $16, sg1($gp) !tlsgd!1 |
| 45 | ldq $27, __tls_get_addr($gp) !literal!1 |
| 46 | jsr $26, ($27), __tls_get_addr !lituse_tlsgd!1 |
| 47 | ldgp $gp, 0($26) |
| 48 | |
| 49 | /* GD against hidden symbol */ |
| 50 | lda $16, sh2($gp) !tlsgd!2 |
| 51 | ldq $27, __tls_get_addr($gp) !literal!2 |
| 52 | jsr $26, ($27), __tls_get_addr !lituse_tlsgd!2 |
| 53 | ldgp $gp, 0($26) |
| 54 | |
| 55 | /* LD */ |
| 56 | lda $16, sl1($gp) !tlsldm!3 |
| 57 | ldq $27, __tls_get_addr($gp) !literal!3 |
| 58 | jsr $26, ($27), __tls_get_addr !lituse_tlsldm!3 |
| 59 | ldgp $gp, 0($26) |
| 60 | lda $1, sl1+1($0) !dtprel |
| 61 | |
| 62 | /* LD with 4 variables */ |
| 63 | lda $16, sh1($gp) !tlsldm!4 |
| 64 | ldq $27, __tls_get_addr($gp) !literal!4 |
| 65 | jsr $26, ($27), __tls_get_addr !lituse_tlsldm!4 |
| 66 | ldgp $gp, 0($26) |
| 67 | lda $1, sh1($0) !dtprel |
| 68 | lda $1, sH1+2($0) !dtprel |
| 69 | ldah $1, sh5+3($0) !dtprelhi |
| 70 | lda $1, sh5+3($1) !dtprello |
| 71 | ldq $1, sH5+1($gp) !gotdtprel |
| 72 | addq $1, $0, $1 |
| 73 | |
| 74 | /* IE against global */ |
| 75 | ldq $1, sg2($gp) !gottprel |
| 76 | addq $1, $9, $1 |
| 77 | |
| 78 | /* IE against local and hidden */ |
| 79 | ldq $1, sl2($gp) !gottprel |
| 80 | ldq $2, sh2($gp) !gottprel |
| 81 | addq $1, $9, $1 |
| 82 | addq $2, $9, $2 |
| 83 | |
| 84 | ldq $26, 0($sp) |
| 85 | addq $sp, 16, $sp |
| 86 | ret |
| 87 | .end fn1 |