diff options
author | K. Richard Pixley <rich@cygnus> | 1993-09-01 00:43:09 +0000 |
---|---|---|
committer | K. Richard Pixley <rich@cygnus> | 1993-09-01 00:43:09 +0000 |
commit | d538b510a0547c9637eb6bb9077541ca0464710c (patch) | |
tree | b81ecd06b689462478a7e1b666f5ab3e506c3a77 /gdb/dcache.h | |
parent | 46cf42477855fce26bb53a76201af161b215b7b3 (diff) | |
download | gdb-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.h | 16 |
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. */ |