diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | lib/base.c | 39 | ||||
-rw-r--r-- | vm/inst.c | 24 |
3 files changed, 40 insertions, 25 deletions
@@ -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 <string.h> + +#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; +} @@ -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"); |