URL
https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 161 |
Rev 166 |
Line 5034... |
Line 5034... |
asection *nsec;
|
asection *nsec;
|
asection *sec;
|
asection *sec;
|
flagword flags;
|
flagword flags;
|
char *nname = NULL;
|
char *nname = NULL;
|
|
|
/* Find a section covering base_vma. */
|
/* Find a section covering [base_vma;limit_vma) */
|
for (sec = abfd->sections; sec != NULL; sec = sec->next)
|
for (sec = abfd->sections; sec != NULL; sec = sec->next)
|
{
|
{
|
if ((sec->flags & (SEC_ALLOC | SEC_LOAD)) == 0)
|
/* Skip uninteresting sections (either not in memory or
|
|
below base_vma. */
|
|
if ((sec->flags & (SEC_ALLOC | SEC_LOAD)) == 0
|
|
|| sec->vma + sec->size <= base_vma)
|
continue;
|
continue;
|
if (sec->vma <= base_vma && sec->vma + sec->size > base_vma)
|
if (sec->vma <= base_vma)
|
{
|
{
|
|
/* This section covers (maybe partially) the beginning
|
|
of the range. */
|
base_vma = sec->vma + sec->size;
|
base_vma = sec->vma + sec->size;
|
goto again;
|
goto again;
|
}
|
}
|
if (sec->vma < next_vma && sec->vma + sec->size >= base_vma)
|
if (sec->vma < next_vma)
|
|
{
|
|
/* This section partially covers the end of the range.
|
|
Used to compute the size of the hole. */
|
next_vma = sec->vma;
|
next_vma = sec->vma;
|
}
|
}
|
|
}
|
|
|
/* No section covering [base_vma; next_vma). Create a fake one. */
|
/* No section covering [base_vma; next_vma). Create a fake one. */
|
flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS;
|
flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS;
|
if (i_phdr->p_flags & PF_X)
|
if (i_phdr->p_flags & PF_X)
|
{
|
{
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.