From 7313566fe3ccb5fadf5f1dfdeb007cc84b8f689a Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Tue, 27 Feb 2007 17:29:51 +0000 Subject: Reviewed by Mark Kettenis 2007-02-27 Fred Fish * 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. --- gdb/rs6000-tdep.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gdb/rs6000-tdep.c') 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,... */ -- cgit v1.1