Added functions to push a byte and a word

Maybe I should make a union for the type, so I can dispatch via
function pointers?
This commit is contained in:
2023-10-15 04:35:07 +01:00
parent 1101716f0f
commit 49a85a20d8

View File

@@ -12,6 +12,7 @@
#include <stdint.h>
#include <stdio.h>
#include <string.h>
typedef uint64_t u64;
typedef uint32_t u32;
@@ -34,6 +35,22 @@ typedef struct
} stack;
} vm_t;
void vm_push_byte(vm_t *vm, byte b)
{
if (vm->stack.pointer >= VM_STACK_MAX)
return;
vm->stack.data[vm->stack.pointer++] = b;
}
void vm_push_word(vm_t *vm, word w)
{
// NOTE: Relies on sizeof measuring in bytes
if (vm->stack.pointer + sizeof(w) >= VM_STACK_MAX)
return;
memcpy(vm->stack.data + vm->stack.pointer, &w, sizeof(w));
vm->stack.pointer += sizeof(w);
}
int main(void)
{
puts("Hello, world!");