aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>2017-03-15 15:52:12 -0700
committerCary Coutant <ccoutant@gmail.com>2017-03-15 16:51:35 -0700
commit1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca (patch)
treeba90950a6e82582dba458f99dc03369fdee56463
parent1728969e93010862fe0ef7985cabe03a4494a63e (diff)
downloadgdb-1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca.zip
gdb-1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca.tar.gz
gdb-1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca.tar.bz2
Remove redundant checks for relocatable link (MIPS).
gold/ * mips.cc (Target_mips::Relocate::relocate): Remove redundant checks for relocatable link. (Mips_relocate_functions::reljalr): Likewise.
-rw-r--r--gold/ChangeLog36
-rw-r--r--gold/mips.cc13
2 files changed, 25 insertions, 24 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 140114e..2426b0a 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,26 +1,32 @@
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
- * mips.cc (class Mips_output_section_options): New class.
- (Target_mips::do_make_output_section): New method.
+ * mips.cc (Target_mips::Relocate::relocate): Remove redundant
+ checks for relocatable link.
+ (Mips_relocate_functions::reljalr): Likewise.
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
- * mips.cc (Mips_relocate_functions::rel26): Don't print relocation
- overflow error message.
- (Target_mips::relocate_special_relocatable): Improve relocation
- overflow error message.
- (Target_mips::Relocate::relocate): Likewise.
+ * mips.cc (class Mips_output_section_options): New class.
+ (Target_mips::do_make_output_section): New method.
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
- * mips.cc (symbol_refs_local): Return false if a symbol
- is from a dynamic object.
- (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
- (Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and
- STB_LOCAL.
- (Target_mips::do_finalize_sections): Set _gp after all the checks
- for creating .got are done.
- (Target_mips::Scan::global): Remove unused code.
+ * mips.cc (Mips_relocate_functions::rel26): Don't print relocation
+ overflow error message.
+ (Target_mips::relocate_special_relocatable): Improve relocation
+ overflow error message.
+ (Target_mips::Relocate::relocate): Likewise.
+
+2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
+
+ * mips.cc (symbol_refs_local): Return false if a symbol
+ is from a dynamic object.
+ (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
+ (Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and
+ STB_LOCAL.
+ (Target_mips::do_finalize_sections): Set _gp after all the checks
+ for creating .got are done.
+ (Target_mips::Scan::global): Remove unused code.
2017-02-22 Alan Modra <amodra@gmail.com>
diff --git a/gold/mips.cc b/gold/mips.cc
index 4ea2e1d..de43e1d 100644
--- a/gold/mips.cc
+++ b/gold/mips.cc
@@ -4539,8 +4539,7 @@ class Mips_relocate_functions : public Relocate_functions<size, big_endian>
Valtype32 val = elfcpp::Swap<32, big_endian>::readval(wv);
// Try converting J(AL)R to B(AL), if the target is in range.
- if (!parameters->options().relocatable()
- && r_type == elfcpp::R_MIPS_JALR
+ if (r_type == elfcpp::R_MIPS_JALR
&& !cross_mode_jump
&& ((jalr_to_bal && val == 0x0320f809) // jalr t9
|| (jr_to_b && val == 0x03200008))) // jr t9
@@ -11570,7 +11569,6 @@ Target_mips<size, big_endian>::Relocate::relocate(
//
// (c) the section allows direct references to MIPS16 functions.
if (r_type != elfcpp::R_MIPS16_26
- && !parameters->options().relocatable()
&& ((mips_sym != NULL
&& mips_sym->has_mips16_fn_stub()
&& (r_type != elfcpp::R_MIPS16_CALL16 || mips_sym->need_fn_stub()))
@@ -11606,7 +11604,7 @@ Target_mips<size, big_endian>::Relocate::relocate(
// to a standard MIPS function, we need to redirect the call to the stub.
// Note that we specifically exclude R_MIPS16_CALL16 from this behavior;
// indirect calls should use an indirect stub instead.
- else if (r_type == elfcpp::R_MIPS16_26 && !parameters->options().relocatable()
+ else if (r_type == elfcpp::R_MIPS16_26
&& ((mips_sym != NULL
&& (mips_sym->has_mips16_call_stub()
|| mips_sym->has_mips16_call_fp_stub()))
@@ -11668,7 +11666,6 @@ Target_mips<size, big_endian>::Relocate::relocate(
// entry is used if a standard PLT entry has also been made.
else if ((r_type == elfcpp::R_MIPS16_26
|| r_type == elfcpp::R_MICROMIPS_26_S1)
- && !parameters->options().relocatable()
&& mips_sym != NULL
&& mips_sym->has_plt_offset()
&& mips_sym->has_comp_plt_offset()
@@ -11697,8 +11694,7 @@ Target_mips<size, big_endian>::Relocate::relocate(
// symbol would be 16-bit code, and that direct jumps were therefore
// acceptable.
cross_mode_jump =
- (!parameters->options().relocatable()
- && !(gsym != NULL && gsym->is_weak_undefined())
+ (!(gsym != NULL && gsym->is_weak_undefined())
&& ((r_type == elfcpp::R_MIPS16_26 && !target_is_16_bit_code)
|| (r_type == elfcpp::R_MICROMIPS_26_S1 && !target_is_micromips_code)
|| ((r_type == elfcpp::R_MIPS_26 || r_type == elfcpp::R_MIPS_JALR)
@@ -12252,8 +12248,7 @@ Target_mips<size, big_endian>::Relocate::relocate(
r_addend = calculated_value;
}
- bool jal_shuffle = jal_reloc(r_type) ? !parameters->options().relocatable()
- : false;
+ bool jal_shuffle = jal_reloc(r_type);
Reloc_funcs::mips_reloc_shuffle(view, r_type, jal_shuffle);
// Report any errors.