X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/6633f16cd7b339def9ee1a7b10b6c03c4d9855c5..cd303963aec7291de8aabf9aa04d1423fe7dcac4:/base/regdump.c diff --git a/base/regdump.c b/base/regdump.c index d4f5fdec..89edbcd1 100644 --- a/base/regdump.c +++ b/base/regdump.c @@ -213,6 +213,7 @@ static const char *regname(char *buf, uint32 f) switch (src) { + case REGSRC_NONE: 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 | - REGSRC_SIMD | i | (6 << REGF_WDSHIFT)); + REGSRC_FP | i | (6 << REGF_WDSHIFT)); 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) { + + case REGSRC_NONE: + printf(";; %s\n", lbl); + return; + 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; + if (!map->fp) { + printf(";;"); + if (lbl) printf(" %s:", lbl); + if (reg) printf(" %s =", reg); + printf(" #\n"); + return; + } if (ix == REGIX_FPSCR) { assert(!(f®F_FMTMASK)); dump_fpflags(lbl, map->fp->fpscr);