From 74a85268c467c349bddc458047513eab18053f37 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Thu, 26 Oct 2023 10:19:10 +0100 Subject: Moved base functions from inst.c to dedicated file Doesn't make sense for them to be in the VM module when they have a more general purpose now. --- Makefile | 2 +- lib/base.c | 39 +++++++++++++++++++++++++++++++++++++++ vm/inst.c | 24 ------------------------ 3 files changed, 40 insertions(+), 25 deletions(-) create mode 100644 lib/base.c diff --git a/Makefile b/Makefile index 2d2e538..6fa4b58 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ TERM_RESET:=$(shell echo -e "\e[0;0m") ## Lib setup LIB_DIST=$(DIST)/lib LIB_SRC=lib -LIB_CODE:=$(addprefix $(LIB_SRC)/, darr.c) +LIB_CODE:=$(addprefix $(LIB_SRC)/, base.c darr.c) LIB_OBJECTS:=$(LIB_CODE:$(LIB_SRC)/%.c=$(LIB_DIST)/%.o) LIB_DEPS:=$(LIB_OBJECTS:%.o=%.d) LIB_CFLAGS=$(CFLAGS) diff --git a/lib/base.c b/lib/base.c new file mode 100644 index 0000000..14a250e --- /dev/null +++ b/lib/base.c @@ -0,0 +1,39 @@ +/* Copyright (C) 2023 Aryadev Chavali + + * You may distribute and modify this code under the terms of the + * GPLv2 license. You should have received a copy of the GPLv2 + * license with this file. If not, please write to: + * aryadev@aryadevchavali.com. + + * Created: 2023-10-26 + * Author: Aryadev Chavali + * Description: Implementation of basic library functions + */ + +#include + +#include "./base.h" + +hword convert_bytes_to_hword(byte *bytes) +{ + hword h = 0; + memcpy(&h, bytes, HWORD_SIZE); + return h; +} + +void convert_hword_to_bytes(hword w, byte *bytes) +{ + memcpy(bytes, &w, HWORD_SIZE); +} + +void convert_word_to_bytes(word w, byte *bytes) +{ + memcpy(bytes, &w, WORD_SIZE); +} + +word convert_bytes_to_word(byte *bytes) +{ + word w = 0; + memcpy(&w, bytes, WORD_SIZE); + return w; +} diff --git a/vm/inst.c b/vm/inst.c index 3980173..8caba06 100644 --- a/vm/inst.c +++ b/vm/inst.c @@ -187,30 +187,6 @@ void data_print(data_t datum, data_type_t type, FILE *fp) } } -hword convert_bytes_to_hword(byte *bytes) -{ - hword h = 0; - memcpy(&h, bytes, HWORD_SIZE); - return h; -} - -void convert_hword_to_bytes(hword w, byte *bytes) -{ - memcpy(bytes, &w, HWORD_SIZE); -} - -void convert_word_to_bytes(word w, byte *bytes) -{ - memcpy(bytes, &w, WORD_SIZE); -} - -word convert_bytes_to_word(byte *bytes) -{ - word w = 0; - memcpy(&w, bytes, WORD_SIZE); - return w; -} - void inst_print(inst_t instruction, FILE *fp) { static_assert(NUMBER_OF_OPCODES == 46, "inst_bytecode_size: Out of date"); -- cgit v1.2.3-13-gbd6f