diff options
| author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-01 17:56:22 +0000 | 
|---|---|---|
| committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-01 17:56:22 +0000 | 
| commit | c244e7c4a4d8a069d5ebae523880aa4356b0ff07 (patch) | |
| tree | 85916a127ec90d5f6b77be4d683976581fee18a8 /vm | |
| parent | 57e692327963dabac9a1fcfda25548644a3a56cf (diff) | |
| download | ovm-c244e7c4a4d8a069d5ebae523880aa4356b0ff07.tar.gz ovm-c244e7c4a4d8a069d5ebae523880aa4356b0ff07.tar.bz2 ovm-c244e7c4a4d8a069d5ebae523880aa4356b0ff07.zip  | |
Use vm_stop and vm_load_registers
By default I initialise the registers with 8 words, though this may
not be necessary for your purposes.
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);  | 
