diff options
Diffstat (limited to 'vm')
-rw-r--r-- | vm/main.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -51,10 +51,14 @@ int main(int argc, char *argv[]) TERM_RESET, number); #endif - byte stack[256]; + size_t stack_size = 256; + byte *stack = calloc(stack_size, 1); + registers_t registers = {0}; + darr_init(®isters, 8 * WORD_SIZE); vm_t vm = {0}; - vm_load_stack(&vm, stack, ARR_SIZE(stack)); + vm_load_stack(&vm, stack, stack_size); vm_load_program(&vm, instructions, number); + vm_load_registers(&vm, registers); #if VERBOSE >= 1 printf("\t[%sVM-SETUP%s]: Loaded stack and program into VM\n", TERM_GREEN, @@ -70,7 +74,7 @@ int main(int argc, char *argv[]) vm_print_all(&vm, stderr); ret = 255 - err; } - free(instructions); + vm_stop(&vm); #if VERBOSE >= 1 printf("[%sINTERPRETER%s]: Finished execution\n", TERM_GREEN, TERM_RESET); |