regs.c (718B)
1 /* 2 * code to keep track of registers 3 */ 4 5 #include "defs.h" 6 #include "fns.h" 7 8 /* 9 * print the registers 10 */ 11 void 12 printregs(int c) 13 { 14 Regdesc *rp; 15 int i; 16 ADDR u; 17 18 if(correg == nil){ 19 dprint("registers not mapped\n"); 20 return; 21 } 22 23 for (i = 1, rp = mach->reglist; rp->name; rp++, i++) { 24 if ((rp->flags & RFLT)) { 25 if (c != 'R') 26 continue; 27 if (rp->format == '8' || rp->format == '3') 28 continue; 29 } 30 rget(correg, rp->name, &u); 31 if(rp->format == 'Y') 32 dprint("%-8s %-20#llux", rp->name, (uvlong)u); 33 else 34 dprint("%-8s %-12#lux", rp->name, (ulong)u); 35 if ((i % 3) == 0) { 36 dprint("\n"); 37 i = 0; 38 } 39 } 40 if (i != 1) 41 dprint("\n"); 42 dprint ("%s\n", mach->exc(cormap, correg)); 43 printpc(); 44 }