aboutsummaryrefslogtreecommitdiff
path: root/gdb/monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/monitor.c')
-rw-r--r--gdb/monitor.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/gdb/monitor.c b/gdb/monitor.c
index b57365e..ca7dd30 100644
--- a/gdb/monitor.c
+++ b/gdb/monitor.c
@@ -838,16 +838,14 @@ monitor_open (char *args, struct monitor_ops *mon_ops, int from_tty)
monitor_printf (current_monitor->line_term);
- if (!remote_dcache)
- {
- if (current_monitor->flags & MO_HAS_BLOCKWRITES)
- remote_dcache = dcache_init (monitor_read_memory,
- monitor_write_memory_block);
- else
- remote_dcache = dcache_init (monitor_read_memory, monitor_write_memory);
- }
+ if (remote_dcache)
+ dcache_free (remote_dcache);
+
+ if (current_monitor->flags & MO_HAS_BLOCKWRITES)
+ remote_dcache = dcache_init (monitor_read_memory,
+ monitor_write_memory_block);
else
- dcache_flush (remote_dcache);
+ remote_dcache = dcache_init (monitor_read_memory, monitor_write_memory);
start_remote ();
}
@@ -934,7 +932,7 @@ monitor_supply_register (int regno, char *valstr)
void
flush_monitor_dcache (void)
{
- dcache_flush (remote_dcache);
+ dcache_invd (remote_dcache);
}
static void
@@ -950,7 +948,7 @@ monitor_resume (int pid, int step, enum target_signal sig)
dump_reg_flag = 1;
return;
}
- dcache_flush (remote_dcache);
+ dcache_invd (remote_dcache);
if (step)
monitor_printf (current_monitor->step);
else
@@ -2147,7 +2145,7 @@ monitor_wait_srec_ack (void)
static void
monitor_load (char *file, int from_tty)
{
- dcache_flush (remote_dcache);
+ dcache_invd (remote_dcache);
monitor_debug ("MON load\n");
if (current_monitor->load_routine)