summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2002-09-20 14:22:44 +0000
committerCorinna Vinschen <corinna@vinschen.de>2002-09-20 14:22:44 +0000
commit121a64ef3c498b5538160556bbc810ba58a44370 (patch)
tree587f07e03b5e9b706cbb013d40bcaddacd1f4516
parent0a55e5ca18306227fa92b339308819fbbee369b4 (diff)
downloadgdb-121a64ef3c498b5538160556bbc810ba58a44370.tar.gz
* h8300-tdep.c (h8300_examine_prologue): Match saved regs location
with what gcc thinks is correct.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/h8300-tdep.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 233bf27b064..ba66a180913 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2002-09-20 Corinna Vinschen <vinschen@redhat.com>
+ * h8300-tdep.c (h8300_examine_prologue): Match saved regs location
+ with what gcc thinks is correct.
+
+2002-09-20 Corinna Vinschen <vinschen@redhat.com>
+
* h8300-tdep.c (h8300_examine_prologue): Fix loop for saved regs in
multiple register push instruction.
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
index 8e1ac8108fa..affd8dd58ec 100644
--- a/gdb/h8300-tdep.c
+++ b/gdb/h8300-tdep.c
@@ -412,10 +412,10 @@ h8300_examine_prologue (register CORE_ADDR ip, register CORE_ADDR limit,
if (IS_PUSH (insn_word))
{
+ auto_depth += 2 + adjust;
+ fsr[insn_word & 0x7] = after_prolog_fp - auto_depth;
ip = next_ip;
next_ip = h8300_next_prologue_insn (ip, limit, &insn_word);
- fsr[r] = after_prolog_fp + auto_depth;
- auto_depth += 2 + adjust;
continue;
}
@@ -431,8 +431,8 @@ h8300_examine_prologue (register CORE_ADDR ip, register CORE_ADDR limit,
for (i = start; i < start + count; i++)
{
- fsr[i] = after_prolog_fp + auto_depth;
auto_depth += 4;
+ fsr[i] = after_prolog_fp - auto_depth;
}
}
break;