version 1.1, 2002/06/02 15:46:18
|
version 1.5, 2003/03/09 15:17:12
|
Line 1
|
Line 1
|
/* support functions and main() for vmgen example |
/* support functions and main() for vmgen example |
|
|
Copyright (C) 2001 Free Software Foundation, Inc. |
Copyright (C) 2001,2003 Free Software Foundation, Inc. |
|
|
This file is part of Gforth. |
This file is part of Gforth. |
|
|
Line 22
|
Line 22
|
#include <stdlib.h> |
#include <stdlib.h> |
#include <stdio.h> |
#include <stdio.h> |
#include <unistd.h> |
#include <unistd.h> |
|
extern int optind; |
|
|
#include <assert.h> |
#include <assert.h> |
#include "mini.h" |
#include "mini.h" |
|
|
Line 154 int main(int argc, char **argv)
|
Line 156 int main(int argc, char **argv)
|
int disassembling = 0; |
int disassembling = 0; |
int profiling = 0; |
int profiling = 0; |
int c; |
int c; |
Inst vm_code[CODE_SIZE]; |
Inst *vm_code=(Inst *)calloc(CODE_SIZE,sizeof(Inst)); |
Inst *start; |
Inst *start; |
Cell stack[STACK_SIZE]; |
Cell *stack=(Cell *)calloc(STACK_SIZE,sizeof(Cell)); |
engine_t runvm=engine; |
engine_t runvm=engine; |
|
|
while ((c = getopt(argc, argv, "hdpt")) != -1) { |
while ((c = getopt(argc, argv, "hdpt")) != -1) { |
Line 164 int main(int argc, char **argv)
|
Line 166 int main(int argc, char **argv)
|
default: |
default: |
case 'h': |
case 'h': |
help: |
help: |
fprintf(stderr, "\ |
fprintf(stderr, "Usage: %s [options] file\nOptions:\n-h Print this message and exit\n-d disassemble VM program before execution\n-p profile VM code sequences (output on stderr)\n-t trace VM code execution (output on stderr)\n", |
Usage: %s [options] file\n |
|
Options:\n |
|
-h Print this message and exit\n\ |
|
-d disassemble VM program before execution\n\ |
|
-p profile VM code sequences (output on stderr)\n\ |
|
-t trace VM code execution (output on stderr)\n\ |
|
", |
|
argv[0]); |
argv[0]); |
exit(1); |
exit(1); |
case 'd': |
case 'd': |
Line 179 Options:\n
|
Line 174 Options:\n
|
break; |
break; |
case 'p': |
case 'p': |
profiling=1; |
profiling=1; |
|
use_super=0; /* we don't want superinstructions in the profile */ |
runvm = engine_debug; |
runvm = engine_debug; |
break; |
break; |
case 't': |
case 't': |