aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2023-11-01 22:54:45 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2023-11-01 22:54:45 +0000
commitb6e359f5ebf914ecbe2b4c68d7d800e32005a7cd (patch)
tree741d0ad7b45e2a8251af25787a239d5bff296902
parent101d7d372d560dfdb1edc7e6b72350304d26603b (diff)
downloadovm-b6e359f5ebf914ecbe2b4c68d7d800e32005a7cd.tar.gz
ovm-b6e359f5ebf914ecbe2b4c68d7d800e32005a7cd.tar.bz2
ovm-b6e359f5ebf914ecbe2b4c68d7d800e32005a7cd.zip
Fixed issue where sometimes vm_print_registers wouldn't work for bytes
Happened because we weren't printing all relevant words due to naturally flooring the result of division. Here I ceil the division to ensure we get the maximal number of words necessary.
-rw-r--r--Makefile2
-rw-r--r--vm/runtime.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index f326a41..7badbbe 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ GENERAL-FLAGS=-Wall -Wextra -Werror -Wswitch-enum -std=c11 -I.
DEBUG-FLAGS=-ggdb -fsanitize=address
RELEASE-FLAGS=-O3
CFLAGS:=$(GENERAL-FLAGS) $(DEBUG-FLAGS) -D VERBOSE=$(VERBOSE)
-LIBS=
+LIBS=-lm
DIST=build
TERM_YELLOW:=$(shell echo -e "\e[0;33m")
TERM_GREEN:=$(shell echo -e "\e[0;32m")
diff --git a/vm/runtime.c b/vm/runtime.c
index 421256a..1f5396a 100644
--- a/vm/runtime.c
+++ b/vm/runtime.c
@@ -371,7 +371,7 @@ void vm_print_registers(vm_t *vm, FILE *fp)
vm->registers.available / HWORD_SIZE,
vm->registers.available / WORD_SIZE);
fprintf(fp, "Registers.reg = [");
- for (size_t i = 0; i < (reg.used / WORD_SIZE); ++i)
+ for (size_t i = 0; i < ceil((long double)reg.used / WORD_SIZE); ++i)
{
fprintf(fp, "{%lu:%lX}", i, VM_NTH_REGISTER(reg, i));
if (i != reg.used - 1)