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.
This commit is contained in:
2
Makefile
2
Makefile
@@ -4,7 +4,7 @@ GENERAL-FLAGS=-Wall -Wextra -Werror -Wswitch-enum -std=c11 -I.
|
|||||||
DEBUG-FLAGS=-ggdb -fsanitize=address
|
DEBUG-FLAGS=-ggdb -fsanitize=address
|
||||||
RELEASE-FLAGS=-O3
|
RELEASE-FLAGS=-O3
|
||||||
CFLAGS:=$(GENERAL-FLAGS) $(DEBUG-FLAGS) -D VERBOSE=$(VERBOSE)
|
CFLAGS:=$(GENERAL-FLAGS) $(DEBUG-FLAGS) -D VERBOSE=$(VERBOSE)
|
||||||
LIBS=
|
LIBS=-lm
|
||||||
DIST=build
|
DIST=build
|
||||||
TERM_YELLOW:=$(shell echo -e "\e[0;33m")
|
TERM_YELLOW:=$(shell echo -e "\e[0;33m")
|
||||||
TERM_GREEN:=$(shell echo -e "\e[0;32m")
|
TERM_GREEN:=$(shell echo -e "\e[0;32m")
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ void vm_print_registers(vm_t *vm, FILE *fp)
|
|||||||
vm->registers.available / HWORD_SIZE,
|
vm->registers.available / HWORD_SIZE,
|
||||||
vm->registers.available / WORD_SIZE);
|
vm->registers.available / WORD_SIZE);
|
||||||
fprintf(fp, "Registers.reg = [");
|
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));
|
fprintf(fp, "{%lu:%lX}", i, VM_NTH_REGISTER(reg, i));
|
||||||
if (i != reg.used - 1)
|
if (i != reg.used - 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user