version 1.175, 2007/03/18 21:46:17
|
version 1.176, 2007/03/25 21:30:59
|
Line 641 void alloc_stacks(ImageHeader * h)
|
Line 641 void alloc_stacks(ImageHeader * h)
|
h->return_stack_size=rsize; |
h->return_stack_size=rsize; |
h->locals_stack_size=lsize; |
h->locals_stack_size=lsize; |
|
|
#if defined(HAVE_MMAP) |
#if defined(HAVE_MMAP) && !defined(STANDALONE) |
if (pagesize > 1) { |
if (pagesize > 1) { |
size_t p = pagesize; |
size_t p = pagesize; |
size_t totalsize = |
size_t totalsize = |
Line 1105 static Address append_prim(Cell p)
|
Line 1105 static Address append_prim(Cell p)
|
} |
} |
#endif |
#endif |
|
|
|
#ifdef STANDALONE |
|
Address gforth_alloc(Cell size) |
|
{ |
|
Address r; |
|
/* leave a little room (64B) for stack underflows */ |
|
if ((r = malloc(size+64))==NULL) { |
|
perror(progname); |
|
exit(1); |
|
} |
|
r = (Address)((((Cell)r)+(sizeof(Float)-1))&(-sizeof(Float))); |
|
debugp(stderr, "malloc succeeds, address=$%lx\n", (long)r); |
|
return r; |
|
} |
|
#endif |
|
|
int forget_dyncode(Address code) |
int forget_dyncode(Address code) |
{ |
{ |
#ifdef NO_DYNAMIC |
#ifdef NO_DYNAMIC |
Line 1740 void compile_prim1(Cell *start)
|
Line 1755 void compile_prim1(Cell *start)
|
#endif /* !(defined(DOUBLY_INDIRECT) || defined(INDIRECT_THREADED)) */ |
#endif /* !(defined(DOUBLY_INDIRECT) || defined(INDIRECT_THREADED)) */ |
} |
} |
|
|
|
#ifndef STANDALONE |
Address gforth_loader(FILE *imagefile, char* filename) |
Address gforth_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 1862 Address gforth_loader(FILE *imagefile, c
|
Line 1878 Address gforth_loader(FILE *imagefile, c
|
|
|
return imp; |
return imp; |
} |
} |
|
#endif |
|
|
/* pointer to last '/' or '\' in file, 0 if there is none. */ |
/* pointer to last '/' or '\' in file, 0 if there is none. */ |
static char *onlypath(char *filename) |
static char *onlypath(char *filename) |