diff options
author | Fred Fish <fnf@specifix.com> | 2007-02-27 17:29:51 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 2007-02-27 17:29:51 +0000 |
commit | 7313566fe3ccb5fadf5f1dfdeb007cc84b8f689a (patch) | |
tree | 0a8e357289fc849f50c9e57184980db75db1e7ba | |
parent | 64a69107228184640d76cf2dace4ac17b78cc049 (diff) | |
download | gdb-7313566fe3ccb5fadf5f1dfdeb007cc84b8f689a.zip gdb-7313566fe3ccb5fadf5f1dfdeb007cc84b8f689a.tar.gz gdb-7313566fe3ccb5fadf5f1dfdeb007cc84b8f689a.tar.bz2 |
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.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/rs6000-tdep.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 137cf70..12cdcd2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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> * arch-utils.c (selected_byte_order): New. diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index cf9eefb..e107114 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -1219,6 +1219,13 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct rs6000_framedata *fdata) offset = fdata->offset; 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 */ else if (((op >> 22) == 0x20f || /* l r31,... or l r30,... */ (op >> 22) == 0x3af) /* ld r31,... or ld r30,... */ |