Commit | Line | Data |
---|---|---|
f4e584bd DJ |
1 | .file 1 "tlsbin-o32.s" |
2 | .abicalls | |
3 | .text | |
4 | .align 2 | |
5 | .globl __start | |
6 | .ent __start | |
7 | .type __start,@function | |
8 | __start: | |
9 | .frame $fp,16,$31 | |
10 | .mask 0x40000000,-8 | |
11 | .fmask 0x00000000,0 | |
12 | .set noreorder | |
13 | .cpload $25 | |
14 | .set reorder | |
15 | addiu $sp,$sp,-16 | |
16 | sw $fp,8($sp) | |
17 | move $fp,$sp | |
18 | .cprestore 0 | |
19 | ||
20 | # General Dynamic | |
21 | lw $25,%call16(__tls_get_addr)($28) | |
22 | addiu $4,$28,%tlsgd(tlsbin_gd) | |
23 | jal $25 | |
24 | ||
25 | lw $25,%call16(__tls_get_addr)($28) | |
26 | addiu $4,$28,%tlsgd(tlsvar_gd) | |
27 | jal $25 | |
28 | ||
29 | # Local Dynamic | |
30 | lw $25,%call16(__tls_get_addr)($28) | |
31 | addiu $4,$28,%tlsldm(tlsbin_ld) | |
32 | jal $25 | |
33 | ||
34 | move $2,$2 # Arbitrary instructions | |
35 | ||
36 | lui $3,%dtprel_hi(tlsbin_ld) | |
37 | addiu $3,$3,%dtprel_lo(tlsbin_ld) | |
38 | addu $3,$3,$2 | |
39 | ||
40 | # Initial Exec | |
41 | .set push | |
42 | .set mips32r2 | |
43 | rdhwr $2, $5 | |
44 | .set pop | |
45 | lw $3,%gottprel(tlsbin_ie)($28) | |
46 | addu $3,$3,$2 | |
47 | ||
48 | lw $3,%gottprel(tlsvar_ie)($28) | |
49 | addu $3,$3,$2 | |
50 | ||
51 | # Local Exec | |
52 | .set push | |
53 | .set mips32r2 | |
54 | rdhwr $2, $5 | |
55 | .set pop | |
56 | lui $3,%tprel_hi(tlsbin_le) | |
57 | addiu $3,$3,%tprel_lo(tlsbin_le) | |
58 | addu $3,$3,$2 | |
59 | ||
60 | move $sp,$fp | |
61 | lw $fp,8($sp) | |
62 | addiu $sp,$sp,16 | |
63 | j $31 | |
64 | .end __start | |
65 | ||
66 | .globl __tls_get_addr | |
67 | __tls_get_addr: | |
68 | j $31 | |
69 | ||
70 | .section .tbss,"awT",@nobits | |
71 | .align 2 | |
72 | .global tlsbin_gd | |
73 | .type tlsbin_gd,@object | |
74 | .size tlsbin_gd,4 | |
75 | tlsbin_gd: | |
76 | .space 4 | |
77 | .global tlsbin_ie | |
78 | .type tlsbin_ie,@object | |
79 | .size tlsbin_ie,4 | |
80 | tlsbin_ie: | |
81 | .space 4 | |
82 | ||
83 | .section .tdata,"awT" | |
84 | .align 2 | |
85 | .global tlsbin_ld | |
86 | .hidden tlsbin_ld | |
87 | .type tlsbin_ld,@object | |
88 | .size tlsbin_ld,4 | |
89 | tlsbin_ld: | |
90 | .word 1 | |
91 | .global tlsbin_le | |
92 | .hidden tlsbin_le | |
93 | .type tlsbin_le,@object | |
94 | .size tlsbin_le,4 | |
95 | tlsbin_le: | |
96 | .word 1 |