version 1.121, 2003/08/20 09:23:46
|
version 1.122, 2003/08/24 09:56:10
|
Line 757 void check_prims(Label symbols1[])
|
Line 757 void check_prims(Label symbols1[])
|
i, s1, s2, s3, (long)(pi->length), (long)(pi->restlength), pi->superend); |
i, s1, s2, s3, (long)(pi->length), (long)(pi->restlength), pi->superend); |
if (endlabel == NULL) { |
if (endlabel == NULL) { |
pi->start = NULL; /* not relocatable */ |
pi->start = NULL; /* not relocatable */ |
|
if (pi->length<0) pi->length=100; |
if (debug) |
if (debug) |
fprintf(stderr,"\n non_reloc: no J label > start found\n"); |
fprintf(stderr,"\n non_reloc: no J label > start found\n"); |
continue; |
continue; |
} |
} |
if (ends1[i] > endlabel && !pi->superend) { |
if (ends1[i] > endlabel && !pi->superend) { |
pi->start = NULL; /* not relocatable */ |
pi->start = NULL; /* not relocatable */ |
|
pi->length = endlabel-symbols1[i]; |
if (debug) |
if (debug) |
fprintf(stderr,"\n non_reloc: there is a J label before the K label (restlength<0)\n"); |
fprintf(stderr,"\n non_reloc: there is a J label before the K label (restlength<0)\n"); |
continue; |
continue; |
} |
} |
if (ends1[i] < pi->start && !pi->superend) { |
if (ends1[i] < pi->start && !pi->superend) { |
pi->start = NULL; /* not relocatable */ |
pi->start = NULL; /* not relocatable */ |
|
pi->length = endlabel-symbols1[i]; |
if (debug) |
if (debug) |
fprintf(stderr,"\n non_reloc: K label before I label (length<0)\n"); |
fprintf(stderr,"\n non_reloc: K label before I label (length<0)\n"); |
continue; |
continue; |
Line 1265 void compile_prim1(Cell *start)
|
Line 1268 void compile_prim1(Cell *start)
|
#endif /* !(defined(DOUBLY_INDIRECT) || defined(INDIRECT_THREADED)) */ |
#endif /* !(defined(DOUBLY_INDIRECT) || defined(INDIRECT_THREADED)) */ |
} |
} |
|
|
#if defined(PRINT_SUPER_LENGTHS) && !defined(NO_DYNAMIC) |
|
Cell prim_length(Cell prim) |
|
{ |
|
return priminfos[prim].length; |
|
} |
|
#endif |
|
|
|
Address loader(FILE *imagefile, char* filename) |
Address loader(FILE *imagefile, char* filename) |
/* returns the address of the image proper (after the preamble) */ |
/* returns the address of the image proper (after the preamble) */ |
{ |
{ |
Line 1645 int main(int argc, char **argv, char **e
|
Line 1641 int main(int argc, char **argv, char **e
|
gforth_args(argc, argv, &path, &imagename); |
gforth_args(argc, argv, &path, &imagename); |
#ifndef NO_DYNAMIC |
#ifndef NO_DYNAMIC |
if (no_dynamic && ss_cost == cost_codesize) { |
if (no_dynamic && ss_cost == cost_codesize) { |
ss_cost = cost_lsu; |
ss_cost = cost_nexts; |
cost_sums[0] = cost_sums[1]; |
cost_sums[0] = cost_sums[1]; /* don't use cost_codesize for print-metrics */ |
if (debug) |
if (debug) |
fprintf(stderr, "--no-dynamic conflicts with --ss-min-codesize, reverting to --ss-min-lsu\n"); |
fprintf(stderr, "--no-dynamic conflicts with --ss-min-codesize, reverting to --ss-min-nexts\n"); |
} |
} |
#endif /* !defined(NO_DYNAMIC) */ |
#endif /* !defined(NO_DYNAMIC) */ |
#endif /* defined(HAS_OS) */ |
#endif /* defined(HAS_OS) */ |