Lines Matching refs:sec

338 #define mmo_section_data(sec) \
339 ((struct mmo_section_data_struct *) (sec)->used_by_bfd)
354 asection *sec;
494 asection *sec = bfd_get_section_by_name (abfd, secname);
496 if (sec == NULL)
508 sec = bfd_make_section (abfd, newsecname);
511 return sec;
655 mmo_find_sec_w_addr (abfd, sec, p)
657 asection *sec;
661 bfd_vma vma = bfd_get_section_vma (abfd, sec);
664 if ((bfd_get_section_flags (abfd, sec) & (SEC_LOAD | SEC_ALLOC))
668 if (infop->addr >= vma && infop->addr < vma + sec->size)
669 infop->sec = sec;
673 mmo_find_sec_w_addr_grow (abfd, sec, p)
675 asection *sec;
679 bfd_vma vma = bfd_get_section_vma (abfd, sec);
682 if ((bfd_get_section_flags (abfd, sec) & (SEC_LOAD | SEC_ALLOC))
687 infop->sec = sec;
692 can't deduce a section, make one up as ".MMIX.sec.N", where N is an
700 asection *sec = NULL;
701 char sec_name[sizeof (".MMIX.sec.") + 20];
705 info.sec = NULL;
710 if (info.sec != NULL)
711 return info.sec;
719 sec = bfd_make_section_old_way (abfd, MMO_TEXT_SECTION_NAME);
721 if (sec == NULL)
724 if (! sec->user_set_vma)
725 bfd_set_section_vma (abfd, sec, vma);
726 if (! bfd_set_section_flags (abfd, sec,
727 bfd_get_section_flags (abfd, sec)
733 sec = bfd_make_section_old_way (abfd, MMO_DATA_SECTION_NAME);
735 if (sec == NULL)
738 if (! sec->user_set_vma)
739 bfd_set_section_vma (abfd, sec, vma);
740 if (! bfd_set_section_flags (abfd, sec,
741 bfd_get_section_flags (abfd, sec)
748 if (info.sec != NULL)
749 return info.sec;
752 sprintf (sec_name, ".MMIX.sec.%d", abfd->tdata.mmo_data->sec_no++);
753 sec = mmo_make_section (abfd, sec_name);
754 if (! sec->user_set_vma)
755 bfd_set_section_vma (abfd, sec, vma);
757 if (! bfd_set_section_flags (abfd, sec,
758 bfd_get_section_flags (abfd, sec)
761 return sec;
767 mmo_xore_64 (sec, vma, value)
768 asection *sec;
772 bfd_byte *loc = mmo_get_loc (sec, vma, 8);
773 bfd_vma prev = bfd_get_64 (sec->owner, loc);
776 bfd_put_64 (sec->owner, value, loc);
782 mmo_xore_32 (sec, vma, value)
783 asection *sec;
787 bfd_byte *loc = mmo_get_loc (sec, vma, 4);
788 unsigned int prev = bfd_get_32 (sec->owner, loc);
791 bfd_put_32 (sec->owner, value, loc);
797 mmo_xore_16 (sec, vma, value)
798 asection *sec;
802 bfd_byte *loc = mmo_get_loc (sec, vma, 2);
803 unsigned int prev = bfd_get_16 (sec->owner, loc);
806 bfd_put_16 (sec->owner, value, loc);
1022 asection *sec;
1029 sec = mmo_make_section (abfd, secname);
1031 return sec;
1043 asection *sec;
1149 sec = mmo_make_section (abfd, secname);
1151 if (sec == NULL)
1167 if (! bfd_set_section_flags (abfd, sec,
1169 | bfd_get_section_flags (abfd, sec)
1171 || ! bfd_set_section_size (abfd, sec, sec->size + section_length)
1173 || (! sec->user_set_vma
1174 && ! bfd_set_section_vma (abfd, sec, section_vma)))
1182 if (mmo_section_data (sec)->tail != NULL)
1183 mmo_section_data (sec)->tail->next = loc;
1185 mmo_section_data (sec)->head = loc;
1186 mmo_section_data (sec)->tail = loc;
1189 return sec;
1515 mmo_get_loc (sec, vma, size)
1516 asection *sec;
1521 struct mmo_section_data_struct *sdatap = mmo_section_data (sec);
1547 if (vma + size > sec->vma + sec->size)
1548 sec->size += (vma + size) - (sec->vma + sec->size);
1569 bfd_zalloc (sec->owner, sizeof (mmo_data_list_type) + allocated_size);
1601 if (! bfd_set_section_flags (sec->owner, sec,
1602 bfd_get_section_flags (sec->owner, sec)
1610 if (vma + size > sec->vma + sec->size)
1611 sec->size += (vma + size) - (sec->vma + sec->size);
1618 mmo_map_set_sizes (abfd, sec, ignored)
1620 asection *sec;
1623 sec->lma = sec->vma;
1636 asection *sec = bfd_make_section_old_way (abfd, MMO_TEXT_SECTION_NAME);
1663 sec = non_spec_sec;
1690 mmo_xore_32 (sec, vma, bfd_get_32 (abfd, buf));
1724 sec = mmo_decide_section (abfd, vma);
1725 if (sec == NULL)
1733 sec = mmo_decide_section (abfd, vma);
1734 if (sec == NULL)
1913 non_spec_sec = sec;
1915 sec = mmo_get_spec_section (abfd, y * 256 + z);
1916 if (sec == NULL)
1919 vma = sec->vma;
2062 mmo_xore_32 (sec, vma & ~3, bfd_get_32 (abfd, buf));
2087 sec = bfd_get_section_by_name (abfd, MMO_TEXT_SECTION_NAME);
2088 if (sec != NULL
2089 && (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
2090 && ! bfd_set_section_flags (abfd, sec,
2091 bfd_get_section_flags (abfd, sec)
2095 sec = bfd_get_section_by_name (abfd, MMO_DATA_SECTION_NAME);
2096 if (sec != NULL
2097 && (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
2098 && ! bfd_set_section_flags (abfd, sec,
2099 bfd_get_section_flags (abfd, sec)
2135 mmo_get_section_contents (abfd, sec, location, offset, bytes_to_do)
2137 asection *sec ATTRIBUTE_UNUSED;
2154 loc = mmo_get_loc (sec, sec->vma + offset, chunk_size);
2360 mmo_internal_write_post (abfd, z, sec)
2363 asection *sec;
2371 bfd_byte *data = mmo_get_loc (sec, i * 8, 8);
2447 mmo_internal_write_section (abfd, sec)
2449 asection *sec;
2463 if (strcmp (sec->name, MMO_TEXT_SECTION_NAME) == 0)
2465 return mmo_write_loc_chunk_list (abfd, mmo_section_data (sec)->head);
2466 else if (strcmp (sec->name, MMO_DATA_SECTION_NAME) == 0)
2467 return mmo_write_loc_chunk_list (abfd, mmo_section_data (sec)->head);
2468 else if (strcmp (sec->name, MMIX_REG_CONTENTS_SECTION_NAME) == 0)
2476 else if (strncmp (sec->name, MMIX_OTHER_SPEC_SECTION_PREFIX,
2479 int n = atoi (sec->name + strlen (MMIX_OTHER_SPEC_SECTION_PREFIX));
2482 && mmo_write_chunk_list (abfd, mmo_section_data (sec)->head));
2486 else if ((bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS) != 0
2487 && sec->size != 0)
2521 a new section is formed, named <<.MMIX.sec.@var{n}>>. Here,
2583 mmo_write_tetra (abfd, (strlen (sec->name) + 3) / 4);
2584 mmo_write_chunk (abfd, sec->name, strlen (sec->name));
2592 (bfd_get_section_flags (abfd, sec)));
2593 mmo_write_octa (abfd, sec->size);
2594 mmo_write_octa (abfd, bfd_get_section_vma (abfd, sec));
2598 if (bfd_get_section_flags (abfd, sec) & SEC_LOAD)
2601 mmo_section_data (sec)->head));
2603 && mmo_write_chunk_list (abfd, mmo_section_data (sec)->head));
2611 mmo_set_section_contents (abfd, sec, location, offset, bytes_to_do)
2613 sec_ptr sec;
2629 loc = mmo_get_loc (sec, sec->vma + offset, chunk_size);
3112 mmo_write_section_unless_reg_contents (abfd, sec, p)
3114 asection *sec;
3122 if (strcmp (sec->name, MMIX_REG_CONTENTS_SECTION_NAME) == 0)
3124 infop->reg_section = sec;
3129 if (strcmp (sec->name, MMIX_REG_SECTION_NAME) == 0)
3131 if (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
3139 bfd_get_filename (abfd), sec->name);
3148 infop->retval = mmo_internal_write_section (abfd, sec);
3175 asection *sec = wsecinfo.reg_section;
3176 unsigned int z = (unsigned int) (sec->vma / 8);
3181 if (z < 32 || z >= 255 || (sec->vma & 7) != 0
3182 || sec->vma != 256 * 8 - sec->size - 8)
3186 if (sec->size == 0)
3191 else if (sec->vma > (256 - 32) * 8)
3197 (long) sec->size);
3203 (long) sec->size,
3204 (unsigned long) (sec->vma >> 32), (unsigned long) (sec->vma));
3209 if (! mmo_internal_write_post (abfd, z, sec))
3223 mmo_get_reloc_upper_bound (abfd, sec)
3225 asection *sec ATTRIBUTE_UNUSED;