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:
17
src/main.c
17
src/main.c
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
typedef uint64_t u64;
|
typedef uint64_t u64;
|
||||||
typedef uint32_t u32;
|
typedef uint32_t u32;
|
||||||
@@ -34,6 +35,22 @@ typedef struct
|
|||||||
} stack;
|
} stack;
|
||||||
} vm_t;
|
} 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)
|
int main(void)
|
||||||
{
|
{
|
||||||
puts("Hello, world!");
|
puts("Hello, world!");
|
||||||
|
|||||||
Reference in New Issue
Block a user