Commit | Line | Data |
---|---|---|
13ae64f3 JJ |
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 | |
7 | x: data4 1 | |
8 | .type y#,@object | |
9 | .size y#,4 | |
10 | y: data4 2 | |
11 | .type z#,@object | |
12 | .size z#,4 | |
13 | z: data4 3 | |
14 | .align 8 | |
15 | .type a#,@object | |
16 | .size a#,8 | |
17 | a: data8 4 | |
18 | .type b#,@object | |
19 | .size b#,8 | |
20 | b: data8 5 | |
21 | .type c#,@object | |
22 | .size c#,1 | |
23 | c: data1 6 | |
24 | ||
25 | .text | |
26 | .align 16 | |
27 | .global foo# | |
28 | .proc foo# | |
29 | foo: | |
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# |