1 .section ".tdata", "awT", @progbits 2 .align 16 3 .global x#, y#, z#, a#, b#, c# 4 .protected a#, b#, c# 5 .type x#,@object 6 .size x#,4 7x: data4 1 8 .type y#,@object 9 .size y#,4 10y: data4 2 11 .type z#,@object 12 .size z#,4 13z: data4 3 14 .align 8 15 .type a#,@object 16 .size a#,8 17a: data8 4 18 .type b#,@object 19 .size b#,8 20b: data8 5 21 .type c#,@object 22 .size c#,1 23c: data1 6 24 25 .text 26 .align 16 27 .global foo# 28 .proc foo# 29foo: 30 .prologue 31 alloc r36 = ar.pfs, 0, 5, 3, 0 32 .body 33 addl loc0 = @ltoff(@tprel(x)), gp;; 34 ld8 loc0 = [loc0];; 35 add loc1 = loc0, r13;; 36 37 mov r2 = r13;; 38 addl loc1 = @tprel(y), r2;; 39 40 mov loc0 = gp 41 addl out0 = @ltoff(@dtpmod(z)), gp 42 addl out1 = @ltoff(@dtprel(z)), gp;; 43 ld8 out0 = [out0] 44 ld8 out1 = [out1] 45 br.call.sptk.many b0 = __tls_get_addr;; 46 mov gp = loc0;; 47 48 addl out0 = @ltoff(@dtpmod(a)), gp 49 addl out1 = @dtprel(a), r0;; 50 ld8 out0 = [out0] 51 br.call.sptk.many b0 = __tls_get_addr;; 52 mov gp = loc0;; 53 54 addl out0 = @ltoff(@dtpmod(b)), gp 55 mov out1 = r0;; 56 ld8 out0 = [out0] 57 br.call.sptk.many b0 = __tls_get_addr;; 58 mov gp = loc0 59 mov r2 = ret0;; 60 addl loc1 = @dtprel(b), r2 61 addl loc2 = @dtprel(c), r2 62 63 br.ret.sptk.many b0 64 .endp foo# 65