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