* h8300-tdep.c (h8300_examine_prologue): Match saved regs location
authorCorinna Vinschen <corinna@vinschen.de>
Fri, 20 Sep 2002 14:22:44 +0000 (14:22 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Fri, 20 Sep 2002 14:22:44 +0000 (14:22 +0000)
with what gcc thinks is correct.

gdb/ChangeLog
gdb/h8300-tdep.c

index 233bf27b06407d78673e451845f2b341739576b5..ba66a1809136c5b310a9d0ab4d203ad536e6dc23 100644 (file)
@@ -1,3 +1,8 @@
+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
index 8e1ac8108fa2649e8a854a61a98cc0293fee7de0..affd8dd58ec6bb6c67d7b289307dc1cf94a45b1b 100644 (file)
@@ -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;