1 # An external tdata symbol
6 .csect tdata_int_csect[TL]
7 # A first internal tdata symbol
10 # A second internal tdata symbol
14 # Two external tbss symbols.
15 # XCOFF doesn't seem to allow internal tbss
20 # TC entries targeting the external tdata symbol
21 # Their value should be "tdata_ext" address,
22 # except TLSM value which must be 0.
23 # Their relocations should target it.
24 .tc tdata_ext_gd[TC],tdata_ext[TL]
25 .tc .tdata_ext_gd[TC],tdata_ext[TL]@m
26 .tc tdata_ext_ld[TC],tdata_ext[TL]@ld
27 .tc tdata_ext_ie[TC],tdata_ext[TL]@ie
28 .tc tdata_ext_le[TC],tdata_ext[TL]@le
30 # TC entries targeting internal tdata symbols.
31 # Their value should be "tdata_int1" or "tdata_int2"
32 # addresses, except TLSM value which must be 0.
33 # Their relocations should target "tdata_int_csect".
34 .tc tdata_int1_gd[TC],tdata_int1
35 .tc .tdata_int1_gd[TC],tdata_int1@m
36 .tc tdata_int1_ld[TC],tdata_int1@ld
37 .tc tdata_int1_ie[TC],tdata_int1@ie
38 .tc tdata_int1_le[TC],tdata_int1@le
39 .tc tdata_int2_gd[TC],tdata_int2
40 .tc .tdata_int2_gd[TC],tdata_int2@m
41 .tc tdata_int2_ld[TC],tdata_int2@ld
42 .tc tdata_int2_ie[TC],tdata_int2@ie
43 .tc tdata_int2_le[TC],tdata_int2@le
45 # TC entries targeting the external tdata symbol
46 # Their value should be "tbss_ext" address,
47 # except TLSM value which must be 0.
48 # Their relocations should target "tbss_ext".
49 .tc tbss_ext_gd[TC],tbss_ext[UL]
50 .tc .tbss_ext_gd[TC],tbss_ext[UL]@m
51 .tc tbss_ext_ld[TC],tbss_ext[UL]@ld
52 .tc tbss_ext_ie[TC],tbss_ext[UL]@ie
53 .tc tbss_ext_le[TC],tbss_ext[UL]@le
57 .rename mh[TC], "_$TLSML" # Symbol for the module handle
63 lwz 3, .\sym\()[TC](2)
103 # As TLS relocations are made in for TC symbols,
104 # this function only aims to avoid garbage collection
105 # of these symbols, especially hidden ones.
111 .long .foo, TOC[tc0], 0
113 .llong .foo, TOC[tc0], 0
120 gd_macro tdata_ext_gd
121 gd_macro tdata_int1_gd
122 gd_macro tdata_int2_gd
132 ld_macro tdata_ext_ld
133 ld_macro tdata_int1_ld
134 ld_macro tdata_int2_ld
138 ie_macro tdata_ext_ie
139 ie_macro tdata_int1_ie
140 ie_macro tdata_int2_ie
144 le_macro tdata_ext_le
145 le_macro tdata_int1_le
146 le_macro tdata_int2_le