From 93a2b7ae81eb2f7ddbbe7d3711138d499dd9e14e Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Sat, 12 Apr 2003 08:50:28 +0000 Subject: [PATCH] * elfxx-mips.c (mips_elf_calculate_relocation): Adjust two other occurrences of the same test changed in the previous patch. Optimize. --- bfd/ChangeLog | 6 ++++++ bfd/elfxx-mips.c | 14 ++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3b7c715fe9e..d72ec9e6bfd 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2003-04-12 Alexandre Oliva + + * 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 * elfxx-mips.c (mips_elf_get_global_gotsym_index): New. diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 73d052033ad..0c3a5d96fca 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; -- 2.30.2