diff options
| author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-10-22 19:28:45 +0100 | 
|---|---|---|
| committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-10-22 19:28:45 +0100 | 
| commit | 33364fddabb25b2e419a672b80ee1f2bf3e82f68 (patch) | |
| tree | 83180e2fc2f39a1ce5240569256cf960f2cfc3d6 /src | |
| parent | ed630259277deb8a17d993574cec93397183c26d (diff) | |
| download | ovm-33364fddabb25b2e419a672b80ee1f2bf3e82f68.tar.gz ovm-33364fddabb25b2e419a672b80ee1f2bf3e82f68.tar.bz2 ovm-33364fddabb25b2e419a672b80ee1f2bf3e82f68.zip  | |
Fix bug where accessing byte/hword registers > 8 wouldn't work
This is because we were checking them as if they were word registers.
Diffstat (limited to 'src')
| -rw-r--r-- | src/runtime.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/src/runtime.c b/src/runtime.c index 77ad109..67ea779 100644 --- a/src/runtime.c +++ b/src/runtime.c @@ -382,7 +382,7 @@ void vm_push_word_register(vm_t *vm, byte reg)  data_t vm_mov_byte(vm_t *vm, byte reg)  { -  if (reg >= VM_REGISTERS) +  if (reg >= (VM_REGISTERS * 8))      // TODO: Error (reg is not a valid byte register)      return DBYTE(0);    else if (vm->stack.ptr == 0) @@ -396,7 +396,7 @@ data_t vm_mov_byte(vm_t *vm, byte reg)  data_t vm_mov_hword(vm_t *vm, byte reg)  { -  if (reg >= VM_REGISTERS) +  if (reg >= (VM_REGISTERS * 2))      // TODO: Error (reg is not a valid hword register)      return DHWORD(0);    else if (vm->stack.ptr < sizeof(f64))  | 
