mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 09:14:14 +08:00
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:
@ -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>
|
2013-06-27 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* powerpc.cc (Target_powerpc::symval_for_branch): Don't assert
|
* powerpc.cc (Target_powerpc::symval_for_branch): Don't assert
|
||||||
|
@ -2628,7 +2628,7 @@ Target_powerpc<size, big_endian>::do_relax(int pass,
|
|||||||
&& parameters->options().output_is_position_independent())
|
&& parameters->options().output_is_position_independent())
|
||||||
{
|
{
|
||||||
// Fill in the BRLT relocs.
|
// 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
|
for (typename Branch_lookup_table::const_iterator p
|
||||||
= this->branch_lookup_table_.begin();
|
= this->branch_lookup_table_.begin();
|
||||||
p != this->branch_lookup_table_.end();
|
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_->add_reloc(p->first, p->second);
|
||||||
}
|
}
|
||||||
this->brlt_section_->finalize_data_size();
|
this->brlt_section_->finalize_brlt_sizes();
|
||||||
}
|
}
|
||||||
return again;
|
return again;
|
||||||
}
|
}
|
||||||
@ -3013,6 +3013,20 @@ class Output_data_brlt_powerpc : public Output_section_data_build
|
|||||||
targ_(targ)
|
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.
|
// Add a reloc for an entry in the BRLT.
|
||||||
void
|
void
|
||||||
add_reloc(Address to, unsigned int off)
|
add_reloc(Address to, unsigned int off)
|
||||||
|
Reference in New Issue
Block a user