Merge remote branch 'origin/master'
[binutils/dougsmingw.git] / ld / testsuite / ld-mips-elf / tlsdyn-o32-2.s
blob7943775eb6fa45388c71c41324281d472ec0a8c9
1 .file 1 "tlsbin-o32.s"
2 .abicalls
3 .text
4 .align 2
5 .globl other
6 .ent other
7 .type other,@function
8 other:
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
20 # General Dynamic
21 lw $25,%call16(__tls_get_addr)($28)
22 addiu $4,$28,%tlsgd(tlsbin_gd)
23 jal $25
25 lw $25,%call16(__tls_get_addr)($28)
26 addiu $4,$28,%tlsgd(tlsvar_gd)
27 jal $25
29 # Local Dynamic
30 lw $25,%call16(__tls_get_addr)($28)
31 addiu $4,$28,%tlsldm(tlsbin_ld)
32 jal $25
34 move $2,$2 # Arbitrary instructions
36 lui $3,%dtprel_hi(tlsbin_ld)
37 addiu $3,$3,%dtprel_lo(tlsbin_ld)
38 addu $3,$3,$2
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
48 lw $3,%gottprel(tlsvar_ie)($28)
49 addu $3,$3,$2
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
60 move $sp,$fp
61 lw $fp,8($sp)
62 addiu $sp,$sp,16
63 j $31
64 .end other