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

	/* csrs: generally supervisor ones */
	uintptr	status;
	uintptr	ie;
	union {
		uintptr	cause;
		uintptr	type;
	};
	uintptr	tval;			/* faulting address */

	uintptr	curmode;
};