This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit/rx sim] Fix a "Cycle count not updated!" abort
- From: Kevin Buettner <kevinb at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 23 Sep 2010 16:39:39 -0700
- Subject: [commit/rx sim] Fix a "Cycle count not updated!" abort
I've commited the patch below.
In rx.c, the RXO_suntil case contains the following line:
cycles (3 + 3 * (tx / 4) + 3 * (tx % 4));
If tx (which DJ tells me is the transaction count) is -1, that
expression reduces to 0 which ends up meaning that the operation in
question took 0 cycles. This causes a sanity check at the top of the
loop to fail printing the message:
Cycle count not updated! id RXO_suntil
The simulator aborts when this happens.
DJ agrees that negative tx values make no sense, leading to the
patch below.
With this patch in place, I'm able to run the gdb.base/break.exp
test program to completion. Without it, it aborts in the midst
of executing the print statement.
I still see a number of failures when running gdb.base/break.exp
though. I'll address those in the next patch.
Kevin
sim/rx/ChangeLog:
* rx.c (decode_opcode): Declare `rx' as unsigned.
Index: rx.c
===================================================================
RCS file: /cvs/src/src/sim/rx/rx.c,v
retrieving revision 1.6
diff -u -p -r1.6 rx.c
--- rx.c 29 Jul 2010 18:41:28 -0000 1.6
+++ rx.c 23 Sep 2010 23:25:38 -0000
@@ -878,7 +878,7 @@ decode_opcode ()
unsigned long long prev_cycle_count;
#endif
#ifdef CYCLE_ACCURATE
- int tx;
+ unsigned int tx;
#endif
#ifdef CYCLE_STATS