~mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
math/mpx-mul4-*.S: Use more portable type syntax for ambiguous instructions.
[catacomb]
/
base
/
regdump.c
diff --git
a/base/regdump.c
b/base/regdump.c
index
d4f5fde
..
89edbcd
100644
(file)
--- a/
base/regdump.c
+++ b/
base/regdump.c
@@
-213,6
+213,7
@@
static const char *regname(char *buf, uint32 f)
switch (src) {
switch (src) {
+ case REGSRC_NONE:
case REGSRC_ABS:
return (0);
case REGSRC_ABS:
return (0);
@@
-659,7
+660,7
@@
void regdump_fp(const struct regmap *map)
regdump(map, 0,
REGF_HEX | REGF_UNSGN | REGF_SGN | REGF_FLT | REGF_CHR |
REGF_64 | REGF_32 | REGF_16 | REGF_8 |
regdump(map, 0,
REGF_HEX | REGF_UNSGN | REGF_SGN | REGF_FLT | REGF_CHR |
REGF_64 | REGF_32 | REGF_16 | REGF_8 |
- REGSRC_
SIMD
| i | (6 << REGF_WDSHIFT));
+ REGSRC_
FP
| i | (6 << REGF_WDSHIFT));
printf(";; Floating-point state:\n");
dump_fpflags(0, map->fp->fpscr);
printf(";; Floating-point state:\n");
dump_fpflags(0, map->fp->fpscr);
@@
-803,6
+804,11
@@
void regdump(const void *base, const char *lbl, uint32 f)
}
switch (f®F_SRCMASK) {
}
switch (f®F_SRCMASK) {
+
+ case REGSRC_NONE:
+ printf(";; %s\n", lbl);
+ return;
+
case REGSRC_ABS:
p = base;
break;
case REGSRC_ABS:
p = base;
break;
@@
-857,6
+863,13
@@
void regdump(const void *base, const char *lbl, uint32 f)
case REGSRC_FP:
case REGSRC_SIMD:
map = (const struct regmap *)base;
case REGSRC_FP:
case REGSRC_SIMD:
map = (const struct regmap *)base;
+ if (!map->fp) {
+ printf(";;");
+ if (lbl) printf(" %s:", lbl);
+ if (reg) printf(" %s =", reg);
+ printf(" #<not available -- regdump_init?>\n");
+ return;
+ }
if (ix == REGIX_FPSCR) {
assert(!(f®F_FMTMASK));
dump_fpflags(lbl, map->fp->fpscr);
if (ix == REGIX_FPSCR) {
assert(!(f®F_FMTMASK));
dump_fpflags(lbl, map->fp->fpscr);