/* * code to keep track of registers */ #include "defs.h" #include "fns.h" /* * print the registers */ void printregs(int c) { Regdesc *rp; int i; ADDR u; if(correg == nil){ dprint("registers not mapped\n"); return; } for (i = 1, rp = mach->reglist; rp->name; rp++, i++) { if ((rp->flags & RFLT)) { if (c != 'R') continue; if (rp->format == '8' || rp->format == '3') continue; } rget(correg, rp->name, &u); if(rp->format == 'Y') dprint("%-8s %-20#llux", rp->name, (uvlong)u); else dprint("%-8s %-12#lux", rp->name, (ulong)u); if ((i % 3) == 0) { dprint("\n"); i = 0; } } if (i != 1) dprint("\n"); dprint ("%s\n", mach->exc(cormap, correg)); printpc(); }