From 92f4f9011d431f9c197aff56a3dbb8a3963b4197 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 3 Nov 2023 19:10:01 +0000 Subject: Refactor vm/main to use refactor to program structure --- vm/main.c | 9 ++++----- vm/runtime.c | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'vm') diff --git a/vm/main.c b/vm/main.c index 929de89..f014325 100644 --- a/vm/main.c +++ b/vm/main.c @@ -40,14 +40,13 @@ int main(int argc, char *argv[]) printf("[" TERM_YELLOW "INTERPRETER" TERM_RESET "]: `%s`\n", filename); #endif - FILE *fp = fopen(filename, "rb"); - size_t number = 0; - inst_t *instructions = insts_read_bytecode_file(fp, &number); + FILE *fp = fopen(filename, "rb"); + prog_t *program = prog_read_file(fp); fclose(fp); #if VERBOSE >= 1 printf("\t[" TERM_GREEN "SETUP" TERM_RESET "]: Read %lu instructions\n", - number); + program->count); #endif size_t stack_size = 256; @@ -61,7 +60,7 @@ int main(int argc, char *argv[]) vm_t vm = {0}; vm_load_stack(&vm, stack, stack_size); - vm_load_program(&vm, instructions, number); + vm_load_program(&vm, program); vm_load_registers(&vm, registers); vm_load_heap(&vm, heap); vm_load_call_stack(&vm, call_stack, call_stack_size); diff --git a/vm/runtime.c b/vm/runtime.c index 16c75f9..72785c5 100644 --- a/vm/runtime.c +++ b/vm/runtime.c @@ -281,8 +281,8 @@ err_t vm_execute_all(vm_t *vm) size_t prev_pages = 0; size_t prev_cptr = 0; #endif - while (program->data->instructions[program->ptr].opcode != OP_HALT && - program->ptr < program->data->count) + while (program->ptr < program->data->count && + program->data->instructions[program->ptr].opcode != OP_HALT) { #if VERBOSE >= 2 fprintf(stdout, "[vm_execute_all]: Trace(Cycle %lu)\n", cycles); -- cgit v1.2.3-13-gbd6f