mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-22 07:53:36 +08:00
* elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
also for calls.
This commit is contained in:
parent
6de2ae4a2a
commit
be3e406de8
@ -1,3 +1,8 @@
|
||||
2009-06-16 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
|
||||
also for calls.
|
||||
|
||||
2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* configure.in (elf): Add elf-ifunc.lo.
|
||||
|
@ -1014,18 +1014,14 @@ needs_ovl_stub (struct elf_link_hash_entry *h,
|
||||
if (spu_elf_section_data (sym_sec->output_section)->u.o.ovl_index
|
||||
!= spu_elf_section_data (input_section->output_section)->u.o.ovl_index)
|
||||
{
|
||||
if (call || sym_type == STT_FUNC)
|
||||
unsigned int lrlive = 0;
|
||||
if (branch)
|
||||
lrlive = (contents[1] & 0x70) >> 4;
|
||||
|
||||
if (!lrlive && (call || sym_type == STT_FUNC))
|
||||
ret = call_ovl_stub;
|
||||
else
|
||||
{
|
||||
ret = br000_ovl_stub;
|
||||
|
||||
if (branch)
|
||||
{
|
||||
unsigned int lrlive = (contents[1] & 0x70) >> 4;
|
||||
ret += lrlive;
|
||||
}
|
||||
}
|
||||
ret = br000_ovl_stub + lrlive;
|
||||
}
|
||||
|
||||
/* If this insn isn't a branch then we are possibly taking the
|
||||
|
Loading…
Reference in New Issue
Block a user