aboutsummaryrefslogtreecommitdiff
path: root/src/inst.c
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2023-10-22 20:23:23 +0100
committerAryadev Chavali <aryadev@aryadevchavali.com>2023-10-22 20:23:23 +0100
commitd5d37f1264174b0ae4178a23bced4c497452c0f4 (patch)
tree54e8718fce06fe29ada1bbe3388534e31cd60372 /src/inst.c
parentd5d10480fad1711dd69467eff4dff4cba71954f8 (diff)
downloadovm-d5d37f1264174b0ae4178a23bced4c497452c0f4.tar.gz
ovm-d5d37f1264174b0ae4178a23bced4c497452c0f4.tar.bz2
ovm-d5d37f1264174b0ae4178a23bced4c497452c0f4.zip
Functions which convert (h)words to and from bytes
Uses memcpy internally, so we don't need to care about endianness.
Diffstat (limited to 'src/inst.c')
-rw-r--r--src/inst.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/inst.c b/src/inst.c
index 74dd736..36156d4 100644
--- a/src/inst.c
+++ b/src/inst.c
@@ -129,6 +129,30 @@ 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;
+}
+
data_type_t get_opcode_data_type(opcode_t opcode)
{
data_type_t type = DATA_TYPE_NIL;