/* for the vax*/ typedef struct Label Label; /* this must have a sp */ struct Label { unsigned long pc; unsigned long sp; unsigned long fp; unsigned long ap; unsigned long r[6]; /* registers 6-11, r6 == r[0] */ }; extern "C" { /* like setjmp and longjmp */ int setlabel(Label *); void gotolabel(long, Label *); /* doesn't return */ Label upframe(Label); unsigned long *argbase(Label); Label movelabel(Label, unsigned long newsp); unsigned long *stackbase(Label); void printlabel(Label); }