summaryrefslogtreecommitdiff
path: root/sim/rx
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2010-09-23 23:42:53 +0000
committerKevin Buettner <kevinb@redhat.com>2010-09-23 23:42:53 +0000
commit1c2ae3626f38f87861a6f0eb0fb3063023cb3fd7 (patch)
tree08c9f12e066291fd7c333e4174787b4db7780238 /sim/rx
parent5c7709b71724f8b8371506d280a07660d58ca8cf (diff)
downloadgdb-1c2ae3626f38f87861a6f0eb0fb3063023cb3fd7.tar.gz
* cpu.h (reset_decoder): Declare.
* load.c (rx_load): Call `reset_decoder'. * rx.c (reset_decoder): New function.
Diffstat (limited to 'sim/rx')
-rw-r--r--sim/rx/ChangeLog4
-rw-r--r--sim/rx/cpu.h1
-rw-r--r--sim/rx/load.c2
-rw-r--r--sim/rx/rx.c8
4 files changed, 15 insertions, 0 deletions
diff --git a/sim/rx/ChangeLog b/sim/rx/ChangeLog
index 717816fb11d..b810475e36e 100644
--- a/sim/rx/ChangeLog
+++ b/sim/rx/ChangeLog
@@ -4,6 +4,10 @@
* rx.c (decode_opcode): Declare `rx' as unsigned.
+ * cpu.h (reset_decoder): Declare.
+ * load.c (rx_load): Call `reset_decoder'.
+ * rx.c (reset_decoder): New function.
+
2010-07-29 DJ Delorie <dj@redhat.com>
* rx.c (decode_cache_base): New.
diff --git a/sim/rx/cpu.h b/sim/rx/cpu.h
index 37ca7f8cb40..6fc99a9ba8c 100644
--- a/sim/rx/cpu.h
+++ b/sim/rx/cpu.h
@@ -235,6 +235,7 @@ extern unsigned int heaptop;
extern unsigned int heapbottom;
extern int decode_opcode (void);
+extern void reset_decoder (void);
extern void reset_pipeline_stats (void);
extern void halt_pipeline_stats (void);
extern void pipeline_stats (void);
diff --git a/sim/rx/load.c b/sim/rx/load.c
index bea9baa738c..bcd8d82cf23 100644
--- a/sim/rx/load.c
+++ b/sim/rx/load.c
@@ -142,6 +142,8 @@ rx_load (bfd *prog)
heaptop = heapbottom = 0;
}
+ reset_decoder ();
+
if (verbose > 1)
fprintf (stderr, "[start pc=%08x %s]\n",
(unsigned int) regs.r_pc,
diff --git a/sim/rx/rx.c b/sim/rx/rx.c
index fc12948bffa..19b896bc127 100644
--- a/sim/rx/rx.c
+++ b/sim/rx/rx.c
@@ -298,6 +298,14 @@ static unsigned char *get_byte_base;
static RX_Opcode_Decoded **decode_cache_base;
static SI get_byte_page;
+void
+reset_decoder (void)
+{
+ get_byte_base = 0;
+ decode_cache_base = 0;
+ get_byte_page = 0;
+}
+
static inline void
maybe_get_mem_page (SI tpc)
{