| image[i]=(Cell)CFA(CF(token)); |
image[i]=(Cell)CFA(CF(token)); |
| #ifdef DIRECT_THREADED |
#ifdef DIRECT_THREADED |
| if ((token & 0x4000) == 0) /* threade code, no CFA */ |
if ((token & 0x4000) == 0) /* threade code, no CFA */ |
| image[i] = *(Cell *)image[i]; |
image[i] = (Cell)compile_prim((Label)image[i]); |
| #endif |
#endif |
| } else |
} else |
| fprintf(stderr,"Primitive %d used in this image at $%lx is not implemented by this\n engine (%s); executing this code will crash.\n",CF(token),(long)&image[i],VERSION); |
fprintf(stderr,"Primitive %d used in this image at $%lx is not implemented by this\n engine (%s); executing this code will crash.\n",CF(token),(long)&image[i],VERSION); |
| image = dict_alloc_read(imagefile, preamblesize+header.image_size, |
image = dict_alloc_read(imagefile, preamblesize+header.image_size, |
| preamblesize+dictsize, data_offset); |
preamblesize+dictsize, data_offset); |
| imp=image+preamblesize; |
imp=image+preamblesize; |
| |
alloc_stacks((ImageHeader *)imp); |
| if (clear_dictionary) |
if (clear_dictionary) |
| memset(imp+header.image_size, 0, dictsize-header.image_size); |
memset(imp+header.image_size, 0, dictsize-header.image_size); |
| if(header.base==0 || header.base == 0x100) { |
if(header.base==0 || header.base == 0x100) { |
| #endif |
#endif |
| fclose(imagefile); |
fclose(imagefile); |
| |
|
| alloc_stacks((ImageHeader *)imp); |
|
| |
|
| /* unnecessary, except maybe for CODE words */ |
/* unnecessary, except maybe for CODE words */ |
| /* FLUSH_ICACHE(imp, header.image_size);*/ |
/* FLUSH_ICACHE(imp, header.image_size);*/ |
| |
|