base/regdump.c: Be helpful about VFP/NEON registers before `regdump_init'.
[catacomb] / base / regdump.c
index d4f5fde..c591fd5 100644 (file)
@@ -659,7 +659,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);
@@ -857,6 +857,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(" #<not available -- regdump_init?>\n");
+       return;
+      }
       if (ix == REGIX_FPSCR) {
        assert(!(f&REGF_FMTMASK));
        dump_fpflags(lbl, map->fp->fpscr);