| |
|
| Label compile_prim(Label prim) |
Label compile_prim(Label prim) |
| { |
{ |
| |
#ifdef DOUBLY_INDIRECT |
| |
if (prim<((Label)(xts+DOESJUMP)) || prim>((Label)(xts+npriminfos))) { |
| |
fprintf(stderr,"compile_prim encountered xt %p\n", prim); |
| |
return prim; |
| |
} else |
| |
return prim-((Label)xts)+((Label)vm_prims); |
| |
#else /* !defined(DOUBLY_INDIRECT) */ |
| #ifdef IND_JUMP_LENGTH |
#ifdef IND_JUMP_LENGTH |
| int i; |
int i; |
| Address old_code_here=code_here; |
Address old_code_here=code_here; |
| #else |
#else |
| return prim; |
return prim; |
| #endif |
#endif |
| |
#endif /* !defined(DOUBLY_INDIRECT) */ |
| } |
} |
| |
|
| Address loader(FILE *imagefile, char* filename) |
Address loader(FILE *imagefile, char* filename) |