- /* calculate the alignment */
- align = get_type_alignment_bytes(ty);
- h = highest_bit(align);
-
- if ((1 << h) < align)
- ++h;
- align = (1 << h);
-
- if (align < 1)
- align = 1;
-
- ia32_dump_comm(comm_obstack, ld_name, visibility,
- (get_type_size_bits(ty) + 7) >> 3, align);
+ be_dbg_variable(main_env->db_handle, comm_obstack, ent);
+
+ /* uninitialized and NOT external */
+ if (get_entity_owner(ent) != get_tls_type()) {
+ /* calculate the alignment */
+ align = get_type_alignment_bytes(ty);
+ h = highest_bit(align);
+
+ if ((1 << h) < align)
+ ++h;
+ align = (1 << h);
+
+ if (align < 1)
+ align = 1;
+
+ ia32_dump_comm(comm_obstack, ld_name, visibility,
+ get_type_size_bytes(ty), align);
+ } else {
+ /* TLS */
+ if (visibility == visibility_external_visible) {
+ obstack_printf(comm_obstack, ".globl\t%s\n", ld_name);
+ }
+ dump_object_size(comm_obstack, ld_name, get_type_size_bytes(ty));
+ align = get_type_alignment_bytes(ty);
+ ia32_dump_align(comm_obstack, align);
+ obstack_printf(comm_obstack, "%s:\n\t.zero %d\n", ld_name, get_type_size_bytes(ty));
+ }