44 lines
718 B
C
44 lines
718 B
C
/*
|
|
* 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();
|
|
}
|