From ee97d6736c59414e36fe1d0ca34eae0b3bdcb2e1 Mon Sep 17 00:00:00 2001 From: Stu Grossman Date: Tue, 25 Aug 1992 03:47:53 +0000 Subject: [PATCH] * sparc-stub.c (handle_exception): Flush instruction cache just before returning to the user. (hexToInt): Fix overzealous cleanup. --- gdb/ChangeLog | 5 +++++ gdb/sparc-stub.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a5880377a86..1e9fd858e01 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Mon Aug 24 20:44:38 1992 Stu Grossman (grossman at cygnus.com) + + * sparc-stub.c (handle_exception): Flush instruction cache just + before returning to the user. (hexToInt): Fix overzealous cleanup. + Mon Aug 24 11:57:13 1992 Fred Fish (fnf@cygnus.com) * infrun.c (handle_command): Rewrite to allow multiple signal 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 */ -- 2.30.2