Reviewed by Mark Kettenis <mark.kettenis@xs4all.nl>

2007-02-27  Fred Fish  <fnf@specifix.com>
	* rs6000-tdep.c (skip_prologue): Recognize addi instructions that
	directly decrement the stack pointer, accumulate their operand into
	the stack offset, and mark the function as not being frameless.
This commit is contained in:
Fred Fish 2007-02-27 17:29:51 +00:00
parent 64a6910722
commit 7313566fe3
2 changed files with 13 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2007-02-27 Fred Fish <fnf@specifix.com>
* rs6000-tdep.c (skip_prologue): Recognize addi instructions that
directly decrement the stack pointer, accumulate their operand into
the stack offset, and mark the function as not being frameless.
2007-02-26 Daniel Jacobowitz <dan@codesourcery.com> 2007-02-26 Daniel Jacobowitz <dan@codesourcery.com>
* arch-utils.c (selected_byte_order): New. * arch-utils.c (selected_byte_order): New.

View file

@ -1219,6 +1219,13 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct rs6000_framedata *fdata)
offset = fdata->offset; offset = fdata->offset;
continue; continue;
} }
else if ((op & 0xffff0000) == 0x38210000)
{ /* addi r1,r1,SIMM */
fdata->frameless = 0;
fdata->offset += SIGNED_SHORT (op);
offset = fdata->offset;
continue;
}
/* Load up minimal toc pointer */ /* Load up minimal toc pointer */
else if (((op >> 22) == 0x20f || /* l r31,... or l r30,... */ else if (((op >> 22) == 0x20f || /* l r31,... or l r30,... */
(op >> 22) == 0x3af) /* ld r31,... or ld r30,... */ (op >> 22) == 0x3af) /* ld r31,... or ld r30,... */