growl/vm.h
2026-01-19 09:08:23 -03:00

30 lines
370 B
C

#ifndef VM_H
#define VM_H
#include "common.h"
#include "chunk.h"
#include "gc.h"
#include "object.h"
enum {
OP_NOP = 0,
OP_RETURN,
OP_CONST,
};
#define STACK_SIZE 256
typedef struct Vm {
Gc gc;
O stack[256], *sp;
U rstack[256], *rsp;
U8 *ip;
} Vm;
V vm_init(Vm *);
V vm_push(Vm *, O);
O vm_pop(Vm *);
O vm_peek(Vm *);
V vm_run(Vm *, Bc *, I);
#endif