aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--lib/base.c39
-rw-r--r--vm/inst.c24
3 files changed, 40 insertions, 25 deletions
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 <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;
+}
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");