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.
This commit is contained in:
Cary Coutant 2013-06-27 23:20:35 +00:00
parent 97b1715633
commit 06f30c9d10
2 changed files with 24 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2013-06-27 Jing Yu <jingyu@google.com>
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.
2013-06-27 Cary Coutant <ccoutant@google.com>
* powerpc.cc (Target_powerpc::symval_for_branch): Don't assert

View File

@ -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)