diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2003-04-12 08:50:28 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2003-04-12 08:50:28 +0000 |
commit | 855d4456fe05c907f8417989a201fdef113e4b72 (patch) | |
tree | f94ff0a79b65d8e74bea0537e879bfa3d06aee73 | |
parent | 3a753d650cb754571e57004aee1ec4e30cc48397 (diff) | |
download | binutils-redhat-855d4456fe05c907f8417989a201fdef113e4b72.tar.gz |
* elfxx-mips.c (mips_elf_calculate_relocation): Adjust two other
occurrences of the same test changed in the previous patch.
Optimize.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 14 |
2 files changed, 14 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3b7c715fe9..d72ec9e6bf 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2003-04-12 Alexandre Oliva <aoliva@redhat.com> + + * elfxx-mips.c (mips_elf_calculate_relocation): Adjust two other + occurrences of the same test changed in the previous patch. + Optimize. + 2003-04-11 Alexandre Oliva <aoliva@redhat.com> * elfxx-mips.c (mips_elf_get_global_gotsym_index): New. diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 73d052033a..0c3a5d96fc 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -3221,12 +3221,14 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info, switch (r_type) { case R_MIPS_GOT_PAGE: + case R_MIPS_GOT_OFST: /* If this symbol got a global GOT entry, we have to decay GOT_PAGE/GOT_OFST to GOT_DISP/addend. */ - if (local_p || ! h - || (h->root.dynindx - < mips_elf_get_global_gotsym_index (elf_hash_table (info) - ->dynobj))) + local_p = local_p || ! h + || (h->root.dynindx + < mips_elf_get_global_gotsym_index (elf_hash_table (info) + ->dynobj)); + if (local_p || r_type == R_MIPS_GOT_OFST) break; /* Fall through. */ @@ -3512,7 +3514,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info, /* GOT_PAGE relocations that reference non-local symbols decay to GOT_DISP. The corresponding GOT_OFST relocation decays to 0. */ - if (! (local_p || ! h || h->root.dynindx < 0)) + if (! local_p) goto got_disp; value = mips_elf_got_page (abfd, input_bfd, info, symbol + addend, NULL); if (value == MINUS_ONE) @@ -3523,7 +3525,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info, break; case R_MIPS_GOT_OFST: - if (local_p || ! h || h->root.dynindx < 0) + if (local_p) mips_elf_got_page (abfd, input_bfd, info, symbol + addend, &value); else value = addend; |