gas:
[binutils/dougsmingw.git] / ld / testsuite / ld-ia64 / tlsbinpic.s
blobf0613434cb2c42a7af66463b961e3b69d67ea106
1 /* Force .data aligned to 4K, so that .got very likely gets at
2 0x60000000000031b0 (0x60 bytes .tdata and 0x150 bytes
3 .dynamic). */
4 .data
5 .balign 4096
6 .section ".tdata", "awT", @progbits
7 .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
8 .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
9 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
10 sg1: .long 17
11 sg2: .long 18
12 sg3: .long 19
13 sg4: .long 20
14 sg5: .long 21
15 sg6: .long 22
16 sg7: .long 23
17 sg8: .long 24
18 sl1: .long 65
19 sl2: .long 66
20 sl3: .long 67
21 sl4: .long 68
22 sl5: .long 69
23 sl6: .long 70
24 sl7: .long 71
25 sl8: .long 72
26 sh1: .long 257
27 sh2: .long 258
28 sh3: .long 259
29 sh4: .long 260
30 sh5: .long 261
31 sh6: .long 262
32 sh7: .long 263
33 sh8: .long 264
34 .explicit
35 .pred.safe_across_calls p1-p5,p16-p63
36 /* Force .text aligned to 4K, so it very likely gets at
37 0x4000000000001000. */
38 .text
39 .balign 4096
40 .globl fn2#
41 .proc fn2#
42 fn2:
43 .prologue 12, 33
44 .mib
45 .save ar.pfs, r34
46 alloc r34 = ar.pfs, 0, 3, 2, 0
47 .save rp, r33
48 mov r33 = b0
50 /* GD */
51 addl r14 = @ltoff(@dtpmod(sG1#)), gp
52 addl r15 = @ltoff(@dtprel(sG1#)), gp
54 ld8 out0 = [r14]
55 ld8 out1 = [r15]
56 br.call.sptk.many b0 = __tls_get_addr#
59 /* GD against local symbol */
60 addl r14 = @ltoff(@dtpmod(sl2#)), gp
61 addl r15 = @ltoff(@dtprel(sl2#)), gp
63 ld8 out0 = [r14]
64 ld8 out1 = [r15]
65 br.call.sptk.many b0 = __tls_get_addr#
68 /* LD */
69 addl r14 = @ltoff(@dtpmod(sl1#)), gp
70 addl out1 = @dtprel(sl1#) + 1, r0
72 ld8 out0 = [r14]
73 br.call.sptk.many b0 = __tls_get_addr#
76 /* LD with 4 variables variables */
77 addl r14 = @ltoff(@dtpmod(sh1#)), gp
78 mov out1 = r0
80 ld8 out0 = [r14]
81 br.call.sptk.many b0 = __tls_get_addr#
83 mov r2 = r8
85 addl r14 = @dtprel(sh1#), r2
86 addl r15 = @dtprel(sh2#) + 2, r2
88 adds r14 = @dtprel(sh3#) + 3, r8
89 movl r15 = @dtprel(sh4#) + 1
91 add r15 = r15, r8
94 mov ar.pfs = r34
95 mov b0 = r33
96 br.ret.sptk.many b0
97 .endp fn2#