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.
This commit is contained in:
2023-10-26 10:19:10 +01:00
parent c8c5381cf2
commit 74a85268c4
3 changed files with 40 additions and 25 deletions

View File

@@ -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)

39
lib/base.c Normal file
View File

@@ -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;
}

View File

@@ -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");