Blame


1 76193d7c 2003-09-30 devnull /*
2 76193d7c 2003-09-30 devnull * setjmp and longjmp, but our own because some (stupid) c libraries
3 76193d7c 2003-09-30 devnull * assume longjmp is only used to move up the stack, and error out
4 76193d7c 2003-09-30 devnull * if you do otherwise.
5 76193d7c 2003-09-30 devnull */
6 76193d7c 2003-09-30 devnull
7 76193d7c 2003-09-30 devnull typedef struct Label Label;
8 76193d7c 2003-09-30 devnull #define LABELDPC 0
9 76193d7c 2003-09-30 devnull
10 76193d7c 2003-09-30 devnull #if defined (__i386__) && (defined(__FreeBSD__) || defined(__linux__))
11 76193d7c 2003-09-30 devnull struct Label
12 76193d7c 2003-09-30 devnull {
13 76193d7c 2003-09-30 devnull ulong pc;
14 76193d7c 2003-09-30 devnull ulong bx;
15 76193d7c 2003-09-30 devnull ulong sp;
16 76193d7c 2003-09-30 devnull ulong bp;
17 76193d7c 2003-09-30 devnull ulong si;
18 76193d7c 2003-09-30 devnull ulong di;
19 76193d7c 2003-09-30 devnull };
20 a995e477 2003-10-01 devnull #elif defined(__APPLE__)
21 a995e477 2003-10-01 devnull struct Label
22 a995e477 2003-10-01 devnull {
23 a995e477 2003-10-01 devnull ulong pc; /* lr */
24 a995e477 2003-10-01 devnull ulong cr; /* mfcr */
25 a995e477 2003-10-01 devnull ulong ctr; /* mfcr */
26 a995e477 2003-10-01 devnull ulong xer; /* mfcr */
27 a995e477 2003-10-01 devnull ulong sp; /* callee saved: r1 */
28 a995e477 2003-10-01 devnull ulong toc; /* callee saved: r2 */
29 a995e477 2003-10-01 devnull ulong gpr[19]; /* callee saved: r13-r31 */
30 a995e477 2003-10-01 devnull // XXX: currently do not save vector registers or floating-point state
31 a995e477 2003-10-01 devnull // ulong pad;
32 a995e477 2003-10-01 devnull // uvlong fpr[18]; /* callee saved: f14-f31 */
33 a995e477 2003-10-01 devnull // ulong vr[4*12]; /* callee saved: v20-v31, 256-bits each */
34 a995e477 2003-10-01 devnull };
35 cd7ddc9b 2003-11-23 devnull #elif defined(__sun__)
36 cd7ddc9b 2003-11-23 devnull struct Label
37 cd7ddc9b 2003-11-23 devnull {
38 cd7ddc9b 2003-11-23 devnull ulong input[8]; /* %i registers */
39 cd7ddc9b 2003-11-23 devnull ulong local[8]; /* %l registers */
40 cd7ddc9b 2003-11-23 devnull ulong sp; /* %o6 */
41 cd7ddc9b 2003-11-23 devnull ulong link; /* %o7 */
42 cd7ddc9b 2003-11-23 devnull };
43 76193d7c 2003-09-30 devnull #else
44 76193d7c 2003-09-30 devnull #error "Unknown or unsupported architecture"
45 76193d7c 2003-09-30 devnull #endif
46 76193d7c 2003-09-30 devnull
47 76193d7c 2003-09-30 devnull