aboutsummaryrefslogtreecommitdiff
path: root/gold/powerpc.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2013-06-27 23:20:35 +0000
committerCary Coutant <ccoutant@google.com>2013-06-27 23:20:35 +0000
commit06f30c9d101218f5d78175cd7e8653a771e825b5 (patch)
tree655f1743b7f28d7a7c529b4648370c13611fafdd /gold/powerpc.cc
parent97b1715633cb136863e0d5ceacef2871ff81a7c9 (diff)
downloadgdb-06f30c9d101218f5d78175cd7e8653a771e825b5.zip
gdb-06f30c9d101218f5d78175cd7e8653a771e825b5.tar.gz
gdb-06f30c9d101218f5d78175cd7e8653a771e825b5.tar.bz2
PR gold/15662
* powerpc.cc (Output_data_brlt_powerpc::reset_brlt_sizes): New function. (Output_data_brlt_powerpc::finalize_brlt_sizes): New function. (Target_powerpc::do_relax): Call the above.
Diffstat (limited to 'gold/powerpc.cc')
-rw-r--r--gold/powerpc.cc18
1 files changed, 16 insertions, 2 deletions
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index 747c7b4..17849ee 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -2628,7 +2628,7 @@ Target_powerpc<size, big_endian>::do_relax(int pass,
&& parameters->options().output_is_position_independent())
{
// Fill in the BRLT relocs.
- this->brlt_section_->reset_data_size();
+ this->brlt_section_->reset_brlt_sizes();
for (typename Branch_lookup_table::const_iterator p
= this->branch_lookup_table_.begin();
p != this->branch_lookup_table_.end();
@@ -2636,7 +2636,7 @@ Target_powerpc<size, big_endian>::do_relax(int pass,
{
this->brlt_section_->add_reloc(p->first, p->second);
}
- this->brlt_section_->finalize_data_size();
+ this->brlt_section_->finalize_brlt_sizes();
}
return again;
}
@@ -3013,6 +3013,20 @@ class Output_data_brlt_powerpc : public Output_section_data_build
targ_(targ)
{ }
+ void
+ reset_brlt_sizes()
+ {
+ this->reset_data_size();
+ this->rel_->reset_data_size();
+ }
+
+ void
+ finalize_brlt_sizes()
+ {
+ this->finalize_data_size();
+ this->rel_->finalize_data_size();
+ }
+
// Add a reloc for an entry in the BRLT.
void
add_reloc(Address to, unsigned int off)