| Address lp=(Address)((void *)fp-image[2]); |
Address lp=(Address)((void *)fp-image[2]); |
| Cell* sp=(Cell*)((void *)lp-image[2]); |
Cell* sp=(Cell*)((void *)lp-image[2]); |
| Cell* ip=(Cell*)(image[3]); |
Cell* ip=(Cell*)(image[3]); |
| |
int throw_code; |
| |
|
| throw_ip = (Xt *)(image[4]); |
throw_ip = (Xt *)(image[4]); |
| for(;stack>0;stack--) |
for(;stack>0;stack--) |
| |
|
| install_signal_handlers(); /* right place? */ |
install_signal_handlers(); /* right place? */ |
| |
|
| |
if ((throw_code=setjmp(throw_jmp_buf))) { |
| |
static Cell signal_data_stack[8]; |
| |
static Cell signal_return_stack[8]; |
| |
|
| |
signal_data_stack[7]=throw_code; |
| |
|
| |
return((int)engine(image[4],signal_data_stack+7, |
| |
signal_return_stack+8,0,0)); |
| |
} |
| |
|
| return((int)engine(ip,sp,rp,fp,lp)); |
return((int)engine(ip,sp,rp,fp,lp)); |
| } |
} |
| |
|