xref: /inferno-os/utils/libmach/uregi.h (revision 2a571cc0ece4073eb56d5ccfc3e061a09a353e13)
1 struct Ureg
2 {
3 	union {
4 		uintptr	pc;
5 		uintptr regs[1];
6 	};
7 	uintptr	r1;		/* link */
8 	union{
9 		uintptr	r2;
10 		uintptr	sp;
11 		uintptr	usp;
12 	};
13 	uintptr	r3;		/* sb */
14 	uintptr	r4;
15 	uintptr	r5;
16 	uintptr	r6;		/* up in kernel */
17 	uintptr	r7;		/* m in kernel */
18 	union{
19 		uintptr	r8;
20 		uintptr arg;
21 		uintptr ret;
22 	};
23 	uintptr	r9;
24 	uintptr	r10;
25 	uintptr	r11;
26 	uintptr	r12;
27 	uintptr	r13;
28 	uintptr	r14;
29 	uintptr	r15;
30 	uintptr	r16;
31 	uintptr	r17;
32 	uintptr	r18;
33 	uintptr	r19;
34 	uintptr	r20;
35 	uintptr	r21;
36 	uintptr	r22;
37 	uintptr	r23;
38 	uintptr	r24;
39 	uintptr	r25;
40 	uintptr	r26;
41 	uintptr	r27;
42 	uintptr	r28;
43 	uintptr	r29;
44 	uintptr	r30;
45 	uintptr	r31;
46 
47 	/* csrs: generally supervisor ones */
48 	uintptr	status;
49 	uintptr	ie;
50 	union {
51 		uintptr	cause;
52 		uintptr	type;
53 	};
54 	uintptr	tval;			/* faulting address */
55 
56 	uintptr	curmode;
57 };
58