* elf32-spu.c (find_function_stack_adjust): Handle sf instruction

used to update stack pointer.
This commit is contained in:
Ulrich Weigand 2009-03-11 00:18:02 +00:00
parent d6b7435fbe
commit 9b175a76d1
2 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2009-03-11 Ulrich Weigand <uweigand@de.ibm.com>
* elf32-spu.c (find_function_stack_adjust): Handle sf instruction
used to update stack pointer.
2009-03-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR binutils/9921

View File

@ -2133,6 +2133,19 @@ find_function_stack_adjust (asection *sec,
return reg[rt];
}
}
else if (buf[0] == 0x08 && (buf[1] & 0xe0) == 0 /* sf */)
{
int rb = ((buf[1] & 0x1f) << 2) | ((buf[2] & 0xc0) >> 6);
reg[rt] = reg[rb] - reg[ra];
if (rt == 1)
{
if (reg[rt] > 0)
break;
*sp_adjust = offset;
return reg[rt];
}
}
else if ((buf[0] & 0xfc) == 0x40 /* il, ilh, ilhu, ila */)
{
if (buf[0] >= 0x42 /* ila */)