summaryrefslogtreecommitdiff
path: root/gdb/sparc-stub.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1992-08-25 03:47:53 +0000
committerStu Grossman <grossman@cygnus>1992-08-25 03:47:53 +0000
commitee97d6736c59414e36fe1d0ca34eae0b3bdcb2e1 (patch)
tree5be8a8bba42417a9685ee76b852215e59ae8ce42 /gdb/sparc-stub.c
parent817b5a60abfe34c233e7abf66315431cd76884e3 (diff)
downloadbinutils-gdb-ee97d6736c59414e36fe1d0ca34eae0b3bdcb2e1.tar.gz
* sparc-stub.c (handle_exception): Flush instruction cache just
before returning to the user. (hexToInt): Fix overzealous cleanup.
Diffstat (limited to 'gdb/sparc-stub.c')
-rw-r--r--gdb/sparc-stub.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gdb/sparc-stub.c b/gdb/sparc-stub.c
index 461b9cd6155..62636c2cad7 100644
--- a/gdb/sparc-stub.c
+++ b/gdb/sparc-stub.c
@@ -546,7 +546,7 @@ hexToInt(char **ptr, int *intValue)
*intValue = (*intValue << 4) | hexValue;
numChars ++;
- *ptr++;
+ (*ptr)++;
}
return (numChars);
@@ -727,6 +727,12 @@ handle_exception (registers)
registers[NPC] = addr + 4;
}
+/* Need to flush the instruction cache here, as we may have deposited a
+ breakpoint, and the icache probably has no way of knowing that a data ref to
+ some location may have changed something that is in the instruction cache.
+ */
+
+ flush_i_cache();
return;
/* kill the program */