Lines Matching refs:htab

354   struct spu_link_hash_table *htab;
356 htab = bfd_malloc (sizeof (*htab));
357 if (htab == NULL)
360 if (!_bfd_elf_link_hash_table_init (&htab->elf, abfd,
364 free (htab);
369 if (!bfd_hash_table_init (&htab->stub_hash_table, stub_hash_newfunc,
373 memset (&htab->stub, 0,
374 sizeof (*htab) - offsetof (struct spu_link_hash_table, stub));
376 return &htab->elf.root;
530 struct spu_link_hash_table *htab = spu_hash_table (info);
533 htab->stack_analysis = stack_analysis;
534 htab->emit_stack_syms = emit_stack_syms;
599 struct spu_link_hash_table *htab = spu_hash_table (info);
658 htab->num_overlays = ovl_index;
659 htab->num_buf = num_buf;
670 htab->ovl_region = alloc_sec;
717 struct spu_link_hash_table *htab,
720 if (htab->num_overlays == 0)
737 && !htab->non_overlay_stubs)
858 struct spu_link_hash_table *htab = spu_hash_table (info);
864 htab->non_overlay_stubs = non_overlay_stubs;
865 stubs.stub_hash_table = &htab->stub_hash_table;
1002 if (!needs_ovl_stub (sym_name, sym_sec, section, htab,
1011 bfd_hash_lookup (&htab->stub_hash_table, stub_name,
1059 elf_link_hash_traverse (&htab->elf, allocate_spuear_stubs, &stubs);
1070 htab->stub = bfd_make_section_anyway_with_flags (ibfd, ".stub", flags);
1071 *stub = htab->stub;
1072 if (htab->stub == NULL
1073 || !bfd_set_section_alignment (ibfd, htab->stub, 2))
1078 htab->ovtab = bfd_make_section_anyway_with_flags (ibfd, ".ovtab", flags);
1079 *ovtab = htab->ovtab;
1080 if (htab->ovtab == NULL
1081 || !bfd_set_section_alignment (ibfd, htab->stub, 4))
1095 bfd_hash_traverse (&htab->stub_hash_table, populate_stubs, &stubs);
1123 htab->stub->size += SIZEOF_STUB2;
1136 stubs.sh[i]->off = htab->stub->size;
1137 htab->stub->size += SIZEOF_STUB1;
1143 htab->stub->size += SIZEOF_STUB2;
1147 /* htab->ovtab consists of two arrays.
1159 htab->ovtab->alignment_power = 4;
1160 htab->ovtab->size = htab->num_overlays * 16 + htab->num_buf * 4;
1218 struct spu_link_hash_table *htab = inf;
1219 asection *sec = htab->stub;
1241 val = (htab->ovly_load->root.u.def.section->output_section->vma
1242 + htab->ovly_load->root.u.def.section->output_offset
1243 + htab->ovly_load->root.u.def.value
1249 htab->stub_overflow = TRUE;
1255 if (htab->emit_stub_syms)
1268 h = elf_link_hash_lookup (&htab->elf, name, TRUE, TRUE, FALSE);
1294 define_ovtab_symbol (struct spu_link_hash_table *htab, const char *name)
1298 h = elf_link_hash_lookup (&htab->elf, name, TRUE, FALSE, FALSE);
1306 h->root.u.def.section = htab->ovtab;
1330 struct spu_link_hash_table *htab = spu_hash_table (info);
1337 htab->emit_stub_syms = emit_syms;
1338 htab->stub->contents = bfd_zalloc (htab->stub->owner, htab->stub->size);
1339 if (htab->stub->contents == NULL)
1342 h = elf_link_hash_lookup (&htab->elf, "__ovly_load", FALSE, FALSE, FALSE);
1343 htab->ovly_load = h;
1359 bfd_hash_traverse (&htab->stub_hash_table, write_one_stub, htab);
1361 if (htab->stub_overflow)
1368 htab->ovtab->contents = bfd_zalloc (htab->ovtab->owner, htab->ovtab->size);
1369 if (htab->ovtab->contents == NULL)
1373 p = htab->ovtab->contents;
1374 obfd = htab->ovtab->output_section->owner;
1383 bfd_put_32 (htab->ovtab->owner, s->vma, p + off);
1384 bfd_put_32 (htab->ovtab->owner, (s->size + 15) & -16, p + off + 4);
1388 hi = htab->num_buf;
1392 if (htab->ovl_region[2 * mid + 1]->vma
1393 + htab->ovl_region[2 * mid + 1]->size <= s->vma)
1395 else if (htab->ovl_region[2 * mid]->vma > s->vma)
1399 bfd_put_32 (htab->ovtab->owner, mid + 1, p + off + 12);
1408 p = htab->ovtab->contents + htab->num_overlays * 16;
1409 for (i = 0; i < htab->num_buf; i++)
1411 bfd_put_32 (htab->ovtab->owner, 0, p);
1415 h = define_ovtab_symbol (htab, "_ovly_table");
1419 h->size = htab->num_overlays * 16;
1421 h = define_ovtab_symbol (htab, "_ovly_table_end");
1424 h->root.u.def.value = htab->num_overlays * 16;
1427 h = define_ovtab_symbol (htab, "_ovly_buf_table");
1430 h->root.u.def.value = htab->num_overlays * 16;
1431 h->size = htab->num_buf * 4;
1433 h = define_ovtab_symbol (htab, "_ovly_buf_table_end");
1436 h->root.u.def.value = htab->num_overlays * 16 + htab->num_buf * 4;
1439 h = define_ovtab_symbol (htab, "_EAR_");
2086 interesting_section (asection *s, bfd *obfd, struct spu_link_hash_table *htab)
2088 return (s != htab->stub
2101 struct spu_link_hash_table *htab = spu_hash_table (info);
2166 if (s != NULL && interesting_section (s, output_bfd, htab))
2208 if (interesting_section (sec, output_bfd, htab))
2226 if (interesting_section (sec, output_bfd, htab)
2253 if (interesting_section (sec, output_bfd, htab))
2279 if (interesting_section (sec, output_bfd, htab))
2374 struct spu_link_hash_table *htab = spu_hash_table (info);
2387 if (!interesting_section (sec, output_bfd, htab)
2534 struct spu_link_hash_table *htab = spu_hash_table (info);
2545 h = elf_link_hash_lookup (&htab->elf, name, TRUE, TRUE, FALSE);
2634 struct spu_link_hash_table *htab = spu_hash_table (info);
2636 if (htab->stack_analysis
2637 && !spu_elf_stack_analysis (output_bfd, info, htab->emit_stack_syms))
2678 struct spu_link_hash_table *htab;
2682 htab = spu_hash_table (info);
2765 if (needs_ovl_stub (sym_name, sec, input_section, htab, branch))
2775 bfd_hash_lookup (&htab->stub_hash_table, stub_name, FALSE, FALSE);
2778 relocation = (htab->stub->output_section->vma
2779 + htab->stub->output_offset
2875 struct spu_link_hash_table *htab = spu_hash_table (info);
2878 && htab->num_overlays != 0
2892 bfd_hash_lookup (&htab->stub_hash_table, stub_name, FALSE, FALSE);
2897 = _bfd_elf_section_from_bfd_section (htab->stub->output_section->owner,
2898 htab->stub->output_section);
2899 sym->st_value = (htab->stub->output_section->vma
2900 + htab->stub->output_offset
2935 struct spu_link_hash_table *htab = spu_hash_table (info);
2936 int extra = htab->num_overlays;
3047 struct spu_link_hash_table *htab;
3058 htab = spu_hash_table (info);
3059 if (htab->num_overlays != 0)
3071 if (htab->ovtab != NULL && htab->ovtab->size != 0)
3073 bfd_byte *p = htab->ovtab->contents;
3077 bfd_put_32 (htab->ovtab->owner, phdr[i].p_offset, p + off);