Fixed minor sim_debug_bits issues.

This commit is contained in:
Mark Pizzolato 2012-12-05 20:47:34 -08:00
parent 9575ac5c63
commit 2c1d2b9a88
2 changed files with 4 additions and 4 deletions

4
scp.c
View file

@ -5880,14 +5880,14 @@ if (sim_deb && (dptr->dctrl & dbits)) {
if (bitdefs[i].name[0] == '\0') if (bitdefs[i].name[0] == '\0')
continue; continue;
if ((bitdefs[i].width == 1) && (bitdefs[i].valuenames == NULL)) { if ((bitdefs[i].width == 1) && (bitdefs[i].valuenames == NULL)) {
int off = ((after >> bitdefs[i].offset) & 1) + (((before ^ after) >> i) & 1) * 2; int off = ((after >> bitdefs[i].offset) & 1) + (((before ^ after) >> bitdefs[i].offset) & 1) * 2;
fprintf(sim_deb, "%s%c ", bitdefs[i].name, debug_bstates[off]); fprintf(sim_deb, "%s%c ", bitdefs[i].name, debug_bstates[off]);
} }
else { else {
char *delta = ""; char *delta = "";
mask = 0xFFFFFFFF >> (32-bitdefs[i].width); mask = 0xFFFFFFFF >> (32-bitdefs[i].width);
value = ((after >> bitdefs[i].offset) & mask) + (((before ^ after) >> bitdefs[i].offset) & mask) * 2; value = ((after >> bitdefs[i].offset) & mask);
beforevalue = ((before >> bitdefs[i].offset) & mask); beforevalue = ((before >> bitdefs[i].offset) & mask);
if (value < beforevalue) if (value < beforevalue)
delta = "_"; delta = "_";

View file

@ -510,8 +510,8 @@ struct sim_bitfield {
char *name; /* field name */ char *name; /* field name */
uint32 offset; /* starting bit */ uint32 offset; /* starting bit */
uint32 width; /* width */ uint32 width; /* width */
char **valuenames; /* map of values to strings */ const char **valuenames; /* map of values to strings */
char *format; /* value format string */ const char *format; /* value format string */
}; };
/* File Reference */ /* File Reference */