Blame


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