1 .file 1 "tlsbin-o32.s" 2 .abicalls 3 .text 4 .align 2 5 .globl other 6 .ent other 7 .type other,@function 8other: 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 other 65