diff options
Diffstat (limited to 'gdb/target.c')
-rw-r--r-- | gdb/target.c | 86 |
1 files changed, 3 insertions, 83 deletions
diff --git a/gdb/target.c b/gdb/target.c index 2c0096e..5001643 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -23,6 +23,7 @@ #include <errno.h> #include <string.h> #include "target.h" +#include "target-dcache.h" #include "gdbcmd.h" #include "symtab.h" #include "inferior.h" @@ -206,76 +207,6 @@ show_targetdebug (struct ui_file *file, int from_tty, static void setup_target_debug (void); -/* The option sets this. */ -static int stack_cache_enabled_p_1 = 1; -/* And set_stack_cache_enabled_p updates this. - The reason for the separation is so that we don't flush the cache for - on->on transitions. */ -static int stack_cache_enabled_p = 1; - -/* This is called *after* the stack-cache has been set. - Flush the cache for off->on and on->off transitions. - There's no real need to flush the cache for on->off transitions, - except cleanliness. */ - -static void -set_stack_cache_enabled_p (char *args, int from_tty, - struct cmd_list_element *c) -{ - if (stack_cache_enabled_p != stack_cache_enabled_p_1) - target_dcache_invalidate (); - - stack_cache_enabled_p = stack_cache_enabled_p_1; -} - -static void -show_stack_cache_enabled_p (struct ui_file *file, int from_tty, - struct cmd_list_element *c, const char *value) -{ - fprintf_filtered (file, _("Cache use for stack accesses is %s.\n"), value); -} - -/* Cache of memory operations, to speed up remote access. */ -static DCACHE *target_dcache; - -/* Target dcache is initialized or not. */ - -static int -target_dcache_init_p (void) -{ - return (target_dcache != NULL); -} - -/* Invalidate the target dcache. */ - -void -target_dcache_invalidate (void) -{ - if (target_dcache_init_p ()) - dcache_invalidate (target_dcache); -} - -/* Return the target dcache. Return NULL if target dcache is not - initialized yet. */ - -DCACHE * -target_dcache_get (void) -{ - return target_dcache; -} - -/* Return the target dcache. If it is not initialized yet, initialize - it. */ - -static DCACHE * -target_dcache_get_or_init (void) -{ - if (!target_dcache_init_p ()) - target_dcache = dcache_init (); - - return target_dcache; -} - /* The user just typed 'target' without the name of a target. */ static void @@ -1616,7 +1547,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object, the collected memory range fails. */ && get_traceframe_number () == -1 && (region->attrib.cache - || (stack_cache_enabled_p && object == TARGET_OBJECT_STACK_MEMORY))) + || (stack_cache_enabled () && object == TARGET_OBJECT_STACK_MEMORY))) { DCACHE *dcache = target_dcache_get_or_init (); @@ -1669,7 +1600,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object, && writebuf != NULL && target_dcache_init_p () && !region->attrib.cache - && stack_cache_enabled_p + && stack_cache_enabled () && object != TARGET_OBJECT_STACK_MEMORY) { DCACHE *dcache = target_dcache_get (); @@ -5162,17 +5093,6 @@ Tells gdb whether to control the inferior in asynchronous mode."), &setlist, &showlist); - add_setshow_boolean_cmd ("stack-cache", class_support, - &stack_cache_enabled_p_1, _("\ -Set cache use for stack access."), _("\ -Show cache use for stack access."), _("\ -When on, use the data cache for all stack access, regardless of any\n\ -configured memory regions. This improves remote performance significantly.\n\ -By default, caching for stack access is on."), - set_stack_cache_enabled_p, - show_stack_cache_enabled_p, - &setlist, &showlist); - add_setshow_boolean_cmd ("may-write-registers", class_support, &may_write_registers_1, _("\ Set permission to write into registers."), _("\ |