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 76193d7c 2003-09-30 devnull #else
36 76193d7c 2003-09-30 devnull #error "Unknown or unsupported architecture"
37 76193d7c 2003-09-30 devnull #endif
38 76193d7c 2003-09-30 devnull
39 76193d7c 2003-09-30 devnull