summaryrefslogtreecommitdiff
path: root/gdb/mn10300-tdep.c
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2006-03-02 09:31:23 +0000
committerCorinna Vinschen <corinna@vinschen.de>2006-03-02 09:31:23 +0000
commitc59ec59d597c7b77af539f75885ecda4586c7ff8 (patch)
tree6a24f2e0f15e59254aa1fbf5541f750e1c2be237 /gdb/mn10300-tdep.c
parent2f9a34b57d3323b04ee6b894e2fb69645ea34083 (diff)
downloadgdb-c59ec59d597c7b77af539f75885ecda4586c7ff8.tar.gz
* mn10300-tdep.c (mn10300_push_dummy_call): Write breakpoint
address to MDR register.
Diffstat (limited to 'gdb/mn10300-tdep.c')
-rw-r--r--gdb/mn10300-tdep.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c
index 47844d1a6d2..bc5e8d8d155 100644
--- a/gdb/mn10300-tdep.c
+++ b/gdb/mn10300-tdep.c
@@ -1055,6 +1055,11 @@ mn10300_push_dummy_call (struct gdbarch *gdbarch,
/* Push the return address that contains the magic breakpoint. */
sp -= 4;
write_memory_unsigned_integer (sp, push_size, bp_addr);
+
+ /* The CPU also writes the return address always into the
+ MDR register on "call". */
+ regcache_cooked_write_unsigned (regcache, E_MDR_REGNUM, bp_addr);
+
/* Update $sp. */
regcache_cooked_write_unsigned (regcache, E_SP_REGNUM, sp);
return sp;