aboutsummaryrefslogtreecommitdiff
path: root/gdb/dcache.h
diff options
context:
space:
mode:
authorK. Richard Pixley <rich@cygnus>1993-09-01 00:43:09 +0000
committerK. Richard Pixley <rich@cygnus>1993-09-01 00:43:09 +0000
commitd538b510a0547c9637eb6bb9077541ca0464710c (patch)
treeb81ecd06b689462478a7e1b666f5ab3e506c3a77 /gdb/dcache.h
parent46cf42477855fce26bb53a76201af161b215b7b3 (diff)
downloadgdb-d538b510a0547c9637eb6bb9077541ca0464710c.zip
gdb-d538b510a0547c9637eb6bb9077541ca0464710c.tar.gz
gdb-d538b510a0547c9637eb6bb9077541ca0464710c.tar.bz2
break dcache code out of remote.c
Diffstat (limited to 'gdb/dcache.h')
-rw-r--r--gdb/dcache.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/gdb/dcache.h b/gdb/dcache.h
index 071ac6e..bfc0dd7 100644
--- a/gdb/dcache.h
+++ b/gdb/dcache.h
@@ -22,6 +22,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef DCACHE_H
#define DCACHE_H
+/* The data cache leads to incorrect results because it doesn't know about
+ volatile variables, thus making it impossible to debug functions which
+ use hardware registers. Therefore it is #if 0'd out. Effect on
+ performance is some, for backtraces of functions with a few
+ arguments each. For functions with many arguments, the stack
+ frames don't fit in the cache blocks, which makes the cache less
+ helpful. Disabling the cache is a big performance win for fetching
+ large structures, because the cache code fetched data in 16-byte
+ chunks. */
+
#define LINE_SIZE_POWER (4)
/* eg 1<<3 == 8 */
#define LINE_SIZE (1 << LINE_SIZE_POWER)
@@ -57,8 +67,14 @@ typedef struct {
} DCACHE;
+/* Using the data cache DCACHE return the contents of the word at
+ address ADDR in the remote machine. */
int dcache_fetch PARAMS((DCACHE *dcache, CORE_ADDR addr));
+
+/* Flush DCACHE. */
void dcache_flush PARAMS((DCACHE *dcache));
+
+/* Initialize DCACHE. */
DCACHE *dcache_init PARAMS((memxferfunc reading, memxferfunc writing));
/* Write the word at ADDR both in the data cache and in the remote machine. */