From e137e850dca37d4d07eb3c23e0e869058d5c5425 Mon Sep 17 00:00:00 2001 From: Peter Schauer Date: Wed, 29 Mar 1995 08:16:05 +0000 Subject: [PATCH] * rs6000-tdep.c (skip_prologue): Skip saving of LR and CR in the stack frame, fix typos in `st rx,NUM(r1)' and `stu r1,NUM(r1)' tests. --- gdb/ChangeLog | 6 ++++++ gdb/rs6000-tdep.c | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4b0987d42c1..13063a11f0a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Wed Mar 29 00:01:07 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * rs6000-tdep.c (skip_prologue): Skip saving of LR and CR in + the stack frame, fix typos in `st rx,NUM(r1)' and `stu r1,NUM(r1)' + tests. + Tue Mar 28 17:04:04 1995 Per Bothner * gdbtypes.c (create_range_type): If indextype has TYPE_FLAG_STUB diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index d3056e89c50..1dfc20d2cec 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -224,13 +224,23 @@ CORE_ADDR pc; op = read_memory_integer (pc, 4); } - while ((op & 0xfc1f0000) == 0x9001 && /* st rx,NUM(r1), rx >= r13 */ + while ((op & 0xfc1f0000) == 0x90010000 && /* st rx,NUM(r1), rx >= r13 */ (op & 0x03e00000) >= 0x01a00000) { pc += 4; op = read_memory_integer (pc, 4); } + + if (op == 0x90010008) { /* st r0,8(r1) */ + pc += 4; + op = read_memory_integer (pc, 4); + } + + if (op == 0x91810004) { /* st r12,4(r1) */ + pc += 4; + op = read_memory_integer (pc, 4); + } - if ((op & 0xfc1f0000) == 0x94210000) { /* stu r1,NUM(r1) */ + if ((op & 0xffff0000) == 0x94210000) { /* stu r1,NUM(r1) */ pc += 4; op = read_memory_integer (pc, 4); } -- 2.30.2