/* | |
* code to keep track of registers | |
*/ | |
#include "defs.h" | |
#include "fns.h" | |
/* | |
* print the registers | |
*/ | |
void | |
printregs(int c) | |
{ | |
Regdesc *rp; | |
int i; | |
ulong 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(); | |
} |