aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2023-10-26 10:19:10 +0100
committerAryadev Chavali <aryadev@aryadevchavali.com>2023-10-26 10:19:10 +0100
commit74a85268c467c349bddc458047513eab18053f37 (patch)
tree828d547ff99ff68f1461170aae614e08a22f8b81
parentc8c5381cf23d175f70e24ddf33319712999d2442 (diff)
downloadovm-74a85268c467c349bddc458047513eab18053f37.tar.gz
ovm-74a85268c467c349bddc458047513eab18053f37.tar.bz2
ovm-74a85268c467c349bddc458047513eab18053f37.zip
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.
-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");