2 * setjmp and longjmp, but our own because some (stupid) c libraries
3 * assume longjmp is only used to move up the stack, and error out
7 typedef struct Label Label;
10 #if defined (__i386__) && (defined(__FreeBSD__) || defined(__linux__))
20 #elif defined(__APPLE__)
27 ulong sp; /* callee saved: r1 */
28 ulong toc; /* callee saved: r2 */
29 ulong gpr[19]; /* callee saved: r13-r31 */
30 // XXX: currently do not save vector registers or floating-point state
32 // uvlong fpr[18]; /* callee saved: f14-f31 */
33 // ulong vr[4*12]; /* callee saved: v20-v31, 256-bits each */
35 #elif defined(__sun__)
38 ulong input[8]; /* %i registers */
39 ulong local[8]; /* %l registers */
44 #error "Unknown or unsupported architecture"