diff --git a/vvm/src/main.c b/vvm/src/main.c index 1dc967f..fe23024 100644 --- a/vvm/src/main.c +++ b/vvm/src/main.c @@ -11,7 +11,7 @@ int main(int argc, char** argv){ program prog; if(argc != 2) die(127, "Please specify exactly one file to execute."); - prog = vm_parse(argv[1]); + prog = vm_compile(argv[1]); vm_execute(prog.code, prog.entrypoint, 0, prog.length); free(prog.code); return 0; diff --git a/vvm/src/vm.c b/vvm/src/vm.c index e74b6ae..71827f6 100644 --- a/vvm/src/vm.c +++ b/vvm/src/vm.c @@ -30,8 +30,8 @@ static inline void disassemble(int sp, int fp, int ip, int opcode, instruction* void vm_execute(int code[], int ip, int datasize, unsigned long length){ int* data = (int *) alloca((size_t)datasize * sizeof(int)); int stack[MAX_SIZE]; - int sp = -1; - int fp = -1; + register int sp = -1; + register int fp = -1; int nargs, addr, a, b; instruction* ins = setup_instructions(); while(ip < length){ @@ -162,7 +162,7 @@ void vm_execute(int code[], int ip, int datasize, unsigned long length){ return; } -program vm_parse(char *filename){ +program vm_compile(char *filename){ FILE* file = fopen(filename, "r"); char* line = NULL; char** command = NULL; diff --git a/vvm/src/vm.h b/vvm/src/vm.h index e66298a..c635afa 100644 --- a/vvm/src/vm.h +++ b/vvm/src/vm.h @@ -37,7 +37,7 @@ void vm_execute(int[], int, int, unsigned long); * @brief vm_parse * @param file -> filename */ -program vm_parse(char*); +program vm_compile(char*); /** * @brief str_split diff --git a/vvm/test/factorial b/vvm/test/factorial index 3d4cea4..46ce3e4 100644 --- a/vvm/test/factorial +++ b/vvm/test/factorial @@ -15,5 +15,7 @@ RET ICONST 12 CALL 0 1 IPRINT +ICONST 10 +PRINT HALT